本节内容:二进制移位运算,以及逻辑运算与算术运算之间的转换。任何进制的位运算本质都是一样的。
■二进制数移位运算:二进制数向左移位运算相当于做2的幂乘法运算,二进制数向右移位运算,相当于做2的幂除法运算。
■十进制数移位运算:十进制移位运算与二进制数移位运算本质相同。
■移位运算的应用:移位运算实现乘法或除法运算。
■逻辑运算的应用举例:大小写字母的转换。
■二进制位运算与十进制加法运算之间的关系:二进制的加法运算与十进制加法运算本质相同,分为三个步骤实现:
- 二进制加法运算即xor异或运算。
- 判断是否有进位,and与运算。
- 如果有进位值,进位值左移1位,继续做进位值的加法运算,直到没有进位为止。
3.2.1 二进制数移位运算
■左移(进位):各二进位全部左移若干位,高位丢弃,低位补0。
举例
shl(<<) 1101 1000 左移2位为:0110 0000 。
0000 0001<<1==0000 0010 2 相当于1*21,结果为2。
0000 0001<<2==0000 0100 4 相当于1*22,结果为4。
0000 0001<<3==0000 1000 8 相当于1*23,结果为8。
1111 1111=27 +26 +25+ 24 +