October 19, 1999 - The Bitwise Right Shift Operator
October 19, 1999 The Bitwise Right Shift Operator Tips: October 1999
Yehuda Shiran, Ph.D.
|
Name Decimal Hex Binary Op1 176 0xB0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 Op1 >> 3 22 0x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0
Let's do a simple calculation:
Name Decimal Binary Op1 -17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 Op1 >> 3 -3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
Right shifting a number n places is the same as dividing it by 2n. Right shifting preserves the operand's sign and thus this rule applies to negative numbers as well. Normally, you would not divide a number by right shifting it, because it is not clear to the reader. You would probably use it only when the performance is a critical factor.