This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Question: What is the result of the following fragment of code? (byte)0x81 >> 2 A. 0x20 B. 0x3FFFFFE0 C. 0xE0 D. 0xFFFFFFE0 Answer is D. I understand the complier will widen the byte to an int before performing the shift, but could not figure out the result. Please help me. Many thanks. Moya
(byte)0x81 >> 2 0x81 = 1000 0001 It is first converted to an int before the shift. 11111111 11111111 11111111 10000001 After the shift it is as follows. 11111111 11111111 11111111 1110 0000 = 0xFFFFFFE0
Dan Chisholm<br />SCJP 1.4<br /> <br /><a href="http://www.danchisholm.net/" target="_blank" rel="nofollow">Try my mock exam.</a>
Joined: Jan 24, 2002
Dan, Thank you very much. I was stuck in the step to modify 1000 0001 -->11111111 11111111 11111111 10000001. I thought "0" was added before 1000 0001. Anyway, I understand it now. I appreciate your help! Moya