문제

I am learning bitwise operations and cannot figure out how 305419896 bitshifted right by 28 equals 1? Can someone explain this?

도움이 되었습니까?

해결책

305419896 represented in binary is 1001000110100010101100111100 (thats 29 bits). If we take that value and shift all the bits right 28 places, we end up with just 1 (in binary and decimal).

다른 팁

You can think of >> n as a truncated division by 2^n.

305419896 / 2^28 -> 305419896 / 268435456 -> 1.1377777755260468

The decimal part is dropped, leaving you with 1.

Of course, as andars said, the computer does this by bit shifting.
Read this question for a good understanding.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top