Shift operators were always confusing for me. So I thought of revising old lessons like converting numbers to binary, shift operators, etc.. once again.
Converting integer to binary
These are one of the first lessons which I learned when I started learning computing. Even though computers use 32/64 bits for a integer, for ease I am using only 8 bits.
So in 8 bits, we can represent integers from 0
(00000000
) to 255
(11111111
) if they are unsigned. When it comes to signed integers its bit confusing, In 8 bits, we can represent 128
(11111111
) to +127
(01111111
) signed integers.ie., if the 8th bit is 1
its a negative number. In another way, 0127
are positive and 128255
are negative.
So how to convert a negative number into binary?
Lets our number be 10
, so the esiest way to find the binary
256 + (10)
256  10 = 246
Converting 246
to binary, gives you 11110110
. which is equalent binary for 10
.
Another way to find the binary of negative numbers is,
 Take the binary of postitive number
 Find 1’s compliment (inverting all 0’s to 1’s and 1’s to 0’s )
 Add 1 to it.
To find 10
’s binary, first we find binary of 10
, which is 00001010
.
10 converted to 00001010
1's compliment of 00001010 is 11110101
Add 1 to it : 11110101 + 1 = 11110110
So here I am gonna address 3 shift operators which revised recently, which are

(Signed right shift)
 « (Signed left shift)

(Unsigned right shift)
# » (Signed right shift)
On 10 >> 1
, here 10 is converted to binary as 00001010
and shit the bits 1 position to the right. Which results 00000101
equalant of 5 in decimal.
On 10 >> 1
, 10 is converted to binary as 11110110
and when shifts to 1 position to right it becomes 11111011
which is equalant to 5.
« (Signed left shift)
On 10 << 1
, here the difference is, it shift the bits 1 posision to its left. which results 00010100
equalant of 20 in decimal. On 10
, in the same way after shift it become 11101100
equalant to 20
»> (Unsigned right shift)
On 10 >>> 1
, here the processing of positive integers are same the >>
(right shift) but bit different for the negative numbers.
On 10 >>> 1
, the binary equalant of 10
is 11110110
. now shift 1 postition to right, adding zero’s on left. which results 01111011
converting this to decimal (discarding sign) will result 123
.