昨天聊到了补码的问题:在4进制中,原码1的补码是3。减去原码和加上补码的结果是一样的。大学时候,对于二进制数,求补码有个口诀:按位取反再加一。
为什么呢?还是以4进制为例,为了直观起见,还是先把图贴上。
减法和补码补码又可以表示为进制能表达的最大数减去原码再加一,对于二进制表现形式能表达的最大数(不考虑负数)是多少?3。写成2进制是11。
- 减去2进制的1也就是01,得到10,和原码正好每一位都取反。
- 减去2进制的2也就是10,得到01,和原码正好每一位也都取反。
因为3的每一位都是1,所以减去另一个数字时,跟取反的结果是一样的。剩下的例子也就不再赘述了。
还有一个在已知补码的情况下,还有一个获得原码的口诀叫:按位取反再加一。
网友评论