位移运算法则(位移运算)

导读 大家好,我是小科,我来为大家解答以上问题。位移运算法则,位移运算很多人还不知道,现在让我们一起来看看吧!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

本文到此讲解完毕了,希望对大家有帮助。

最新文章