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

发布日期:2022-11-19
单片机移位操作右移为什么最高位保持原数最低位移出

电工优优今天要和大家分享的单片机移位操作右移为什么最高位保持原数最低位移出相关信息,接下来我将从单片机循环移位,单片机移位指令,51单片机移位这几个方面来介绍。

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

移位操作的含义

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

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

例如对于十进制数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)。这就是算术右移。

以上就是"电工优优"为大家介绍的单片机循环移位的相关信息,想了解更多"单片机移位操作右移为什么最高位保持原数最低位移出,单片机循环移位,单片机移位指令,51单片机移位"相关知识,请收藏电工无忧吧。