二进制数有两种移位操作:左移& gt
1 。左移操作
a<<b,表示将二进制数a整体向左移动b位,右边的b位用0补充 。例如:00000100
二进制数100是十进制数4,左移2位得到10000是十进制数8 。
若左移时舍弃的高位不包含1,那么每左移一位,相当于该数乘以2 。a << b的值实际上就是a乘以2的b次方,因为在二进制数后添一个0就相当于该数乘以2 。通常a<<1比a*2更快,因此程序中乘以2的操作可以用左移一位来代替 。2 。右移位运算符>;& gt
a>>b,表示将二进制数a整体向右移动b位 。右移运算分为两种:逻辑右移和算术右移(1)逻辑右移,其中左位用0填充 。
例如:00001100 & gt& gt2 =00000011
对于有符号数00001100十进制数12,逻辑右移2位,左填0,变成:00000011十进制数3 。
【二进制的移位运算 二进制减法运算方法】(2)算术右移,其中左边用符号位填充 。
例如:10000100 & gt& gt2 =11100001
00000100 >& gt2 =00000001
对于有符号的数10000100,算术右移2位,左填1(1是符号位),就变成:1100001 。
对于有符号数00000100,算术右移2位,左边填充0(0为符号位),变成0000001 。
在C语言中,右移运算符为算术右移运算符,即左边用符号位来填充 。若右移时高位不是1(即不是负数),舍弃的低位不包含1,那么操作数每右移一位,相当于该数除以2,a>>b的值相当于a除以2的b次方(取整) 。我们也经常用>> 1来代替除以2,用>>代替除法运算可以使程序效率大大提高 。摘要:
无论左移还是右移,都需要用0或者1去填充移动之后的空位 。在左移的过程中,右边一律用0去填充 。右移分为逻辑右移和算术右移 。左补0还是补1得看被移数是正还是负 。将一个数左移n位相当于将一个数乘以2^n,而将一个数右移n位相当于将这个数除以2^n 。普通二进制数移位的变换运算
,
推荐阅读
- rs3有两厢的吗
- 鸡的营养需要和其他家畜有什么差别
- 孩子的智商越高 孩子智商越高说明什么
- 汽车下坡正确踩离合的方法
- 叔本华最经典的10句话 叔本华最经典语录一句话
- 湘江流域的地理特征
- 人生的本质是痛苦 叔本华经典语录人生哲理
- 红旗hs5的油耗
- 校园卡移动的可以注销吗
- 低脂色拉酱的配方有哪几种