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).
How does 305419896 >> 28 equal 1?
-
13-10-2022 - |
Question
I am learning bitwise operations and cannot figure out how 305419896 bitshifted right by 28 equals 1? Can someone explain this?
Solution
OTHER TIPS
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.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow