单片机移位操作右移为什么最高位保持原数最低位移出

移位操作的含义

移位运算符是位操作运算符的一种。移位运算符在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为:>右移、>>(带符号右移)和

需要特别注意的是,移位运算是按照二进制数字进行操作的。

例如对于十进制数89进行移位操作的话,需要先把十进制数89转化为二进制数1000 1001,然后才能进行移位运算。

单片机移位操作右移为什么最高位保持原数最低位移出

算术右移和逻辑右移

我们知道,在实际生活中,整数有正有负,所以在进行移位操作的时候,正整数和负整数的移位操作是不同的。

1、逻辑右移

逻辑右移就是不考虑符号位,右移一位,左边补零即可。

2、算术右移

算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,;否则,就补0。

所以算术右移也可以进行有符号位的除法,右移,n位就等于除2的n次方。

举个例子来说明一下。

还用上面说的十进制数正89,它的二进制数为1000 1001.

对于正整数89来说,右移一位后变成 (0)100 0100 (1).其中左边的0,是移位时补的0,最右边括号中的1,是经过移位操作后,移出去的那一位。这就是逻辑右移

对于二进制数89,如果它是有符号数,那它表示的十进制数就不是89了,而是-9.对它进行右移一位的操作后,变成 (1)100 0100 (1)。这就是算术右移。

单片机移位操作右移为什么最高位保持原数最低位移出

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查