本文主要是介绍逻辑左移,算数左移,逻辑右移,算术右移 shift arithmetic shift,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2020年,大二的时候读了这篇文章觉得它错了,现在看上去是对的…写写博客复习一下。
逻辑移动,不在乎符号位,移它补0
逻辑左移N位:数字往左边移N位,低位补0
逻辑右移N位:数字往右边移N位,高位补0
给定一个数字1010101010
- 逻辑左移3位:
1010101010 —> 0101010[0][0][0] - 逻辑右移3位:1010101
010—> [0][0][0]1010101
算数移动,在乎符号位,右移定补符号位
算数左移N位,数字往左边移动N位,低位补0(与逻辑左移一致)
算数右移N位,数字往右边移动N位,高位补符号位
给定一个数字1010101010
- 算数左移3位:
1010101010 —> 0101010[0][0][0] (与逻辑左移一致) - 算数右移3位:1010101
010—> [1][1][1]1010101 (补符号位1)
如果是数字0101010101
- 算数左移3位:
0101010101 —> 1010101[0][0][0] - 算数右移3位:0101010
101—> [0][0][0]0101010
知乎大佬的解释
这篇关于逻辑左移,算数左移,逻辑右移,算术右移 shift arithmetic shift的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!