原码 | 补码 | 反码 | 左移 | 右移 | 无符号右移 | |
负数 | 原码就是机器数,是加了一位符号位的二进制数。负数的符号位是1 | 负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。 负数一般用补码来计算。 | 负数的反码等于原码除符号位以外所有的位取反 | 左侧的数字左移右侧数字的位数的结果,其规则为:丢弃最高为,0补最低位。因此,左移可以用作乘2操作的一个高效的实现。 | 先求补码,然后右移,左边空出的用1填补,然后求补码对应的原码(先-1再求反) | 负数,先求补码,然后不顾符号的右移,高位全部补0,最后就是所得值。 |
正数 | 原码就是机器数,是加了一位符号位的二进制数。正数的符号位是0 | 正数的补码与原码相同 | 正数的反码就是原码 | 同负数 | 先求补码,正数的补码就是原码,然后右移,左边空出的用0填补 | 正数的补码就是原码,所以直接右移 |