其他分享
首页 > 其他分享> > 位运算

位运算

作者:互联网

前面的话

巧妙使用位运算,在算法方面往往比四则运算要快许多。

左移(<<)

运算规则:

若a=15,将其左移2位。即a的二进制数0000 1111,将其左移2位,右补2个0,则变为00111100,即十进制的60。

若a=64,将其左移2位。即a的二进制数为0100 0000,左移一位,1000 0000,左移两位 0000 0001 0000 0000 ,即十进制的256

结论:左移一位相当于该数乘以2,左移两位相当于乘以2^2。

带符号右移(>>)

运算规则:

若a=11,将其右移2位。即0000 1011,将其低位的最后两个数移出,因为该数字是正数,将其右移,高位补2个0,最终为0000 0010,即十进制的2。

结论:正数的右移一位相当于除2,右移n为相当于除以2的n次方。这是取商,余数不要。

右移可以在二分算法中取中间值:

例如: 13>>1 // 6

无符号右移(>>>)

运算规则:

按位操作

crazy的蓝色梦想 发布了230 篇原创文章 · 获赞 169 · 访问量 4万+ 私信 关注

标签:右移,0000,运算,舍弃,二进制,左移,1000
来源: https://blog.csdn.net/qq_41257129/article/details/104116745