Loading

关于左移右移

逻辑左移 (Logical Left Shift):

所有位都向左移动。
左边的位会被丢弃,而右边则会填充0。
例如:对于8位二进制数00101010执行逻辑左移1位,结果为01010100。

算术左移 (Arithmetic Left Shift):

实际上,算术左移和逻辑左移在大多数情况下是一样的。
所有的位都向左移动,左边的位被丢弃,而右边填充0。

逻辑右移 (Logical Right Shift):

所有位都向右移动。
右边的位会被丢弃,而左边则会填充0。
例如:对于8位二进制数00101010执行逻辑右移1位,结果为00010101。

算术右移 (Arithmetic Right Shift):

所有位都向右移动。
右边的位会被丢弃。
但不同的是,左边的位会填充原来最高位(符号位)的值。这样做的目的是保留数字的符号(正数或负数)。
例如:对于8位二进制数10101010(表示一个负数,因为最高位是1),执行算术右移1位,结果为11010101。注意左边是如何填充1来保持原来的符号的。

posted @ 2023-10-17 19:54  zzqDeco  阅读(72)  评论(0编辑  收藏  举报