重温位运算之反码、补码
在计算机系统中,为了区分正负数,所有的数都是以补码的形式存储的:所以以下知识需谨记,
在位运算中有着至关重要的作用。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
逻辑移位和算术移位仅体现在右移的区别:
逻辑右移就是不考虑符号位,右移一位,左边补零即可,所以复数右移动会又突然便超级大的情况,负数右移实际中不常使用。而且逻辑右移的有效性基本用于无符号数值
算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,;否则,就补0。
所以算术右移也可以进行有符号位的除法,右移,n位就等于除2的n次方。
例如,8位二进制数11001101分别右移一位。
逻辑右移就是[0]1100110
算术右移就是[1]1100110