导读 大家好,我是小科,我来为大家解答以上问题。位移运算法则,位移运算很多人还不知道,现在让我们一起来看看吧!1、要了解移位运算,需明白...
大家好,我是小科,我来为大家解答以上问题。位移运算法则,位移运算很多人还不知道,现在让我们一起来看看吧!
1、要了解移位运算,需明白二进制计数
2、以单字节为例,比如0x55=0b01010101
3、如果将该数值左移1位,就变成了 0b10101010(最右边这个0是移空了以后补的),这个数值是0xaa
4、从数学上看,左移1位等于乘以2,右移1位等于除以2,然后再取整,移位溢出的丢弃。
5、例如:
6、unsigned char a;
7、a=1; //0b00000001
8、a<<=1; //0b00000010 a左移1位等效于a=a*2
9、a<<=2; //0b00001000 a左移2位等效于a=a*2的2次方(4)
10、a<<=3; //0b01000000 a左移1位等效于a=a*2的3次方(8)
11、a<<=1; //0b10000010 a左移1位等效于a=a*2
12、a<<=1; //0b00000000 a再次左移1位后溢出了,结果变成0了
13、c=a<<b; 在变量都是8位的时候,等效于 c=(a*pow(2,b))%256
本文到此讲解完毕了,希望对大家有帮助。