关于逻辑移位和算术移位本人一直傻傻分不清,总是搞混,这回来写一下,也提醒自己别忘记区别。
移位分为左移和右移,即有逻辑左移逻辑右移,算术左移算术右移,区别如下:
即:
1.算术移位是考虑符号的,逻辑移位是不考虑符号的;
2.算数左移和逻辑左移一样。
3.算术右移和逻辑右移则不同,逻辑右移最高位始终是移动前的最高位值。
例:
八位二进制数10101010,算术左移一位即为01010100,逻辑左移与其相同。
八位二进制数10101010,算术右移一位即为11010101,逻辑右移即为01010101。