posted 6 years ago
To find out what the output of this is, you can ofcourse simply try it out.
A byte is an 8bit signed integer. In the first line, you're setting the bits to 0xf1 (or 1111 0001 in binary).
In line 2 you're first shifting this to the right by 4 bits. When you shift a byte to the right, all the bits go right one place, theleft rightmost bit will be discarded and the right leftmost bit will be copied from what was previously the right leftmost bit. So:
[1] 1111 0001 >> 1 = 1111 1000
[2] 1111 1000 >> 1 = 1111 1100
[3] 1111 1100 >> 1 = 1111 1110
[4] 1111 1110 >> 1 = 1111 1111
The result after >> 4 is: 1111 1111
Then you do a bitwise AND with 0x0f (or 0000 1111 in binary).
1111 1111 & 0000 1111 = 0000 1111
So the result is 0000 1111, which is 0x0f in hexadecimal or 15 in decimal.
A byte is an 8bit signed integer. In the first line, you're setting the bits to 0xf1 (or 1111 0001 in binary).
In line 2 you're first shifting this to the right by 4 bits. When you shift a byte to the right, all the bits go right one place, the
[1] 1111 0001 >> 1 = 1111 1000
[2] 1111 1000 >> 1 = 1111 1100
[3] 1111 1100 >> 1 = 1111 1110
[4] 1111 1110 >> 1 = 1111 1111
The result after >> 4 is: 1111 1111
Then you do a bitwise AND with 0x0f (or 0000 1111 in binary).
1111 1111 & 0000 1111 = 0000 1111
So the result is 0000 1111, which is 0x0f in hexadecimal or 15 in decimal.
Won't you be my neighbor?  Fred Rogers. tiny ad:
The WEB SERVICES and JAXRS Course
https://coderanch.com/t/690789/WEBSERVICESJAXRS
