关于补码运算原理

来源:互联网 发布:对于人工智能的看法600 编辑:程序博客网 时间:2024/05/29 15:04

刚才看java视频偶然发现有这么一个东西,之前看csapp不知道是我自己忘了还是没有。

以4位数字来举例

负数=对应的正数取反+1

举例:1001 = (0111)取反->(1000) + 1


那么为什么能够这样转化呢。一个新的概念就是模。这个模就是一个数据范围能够表示的数字个数,比如4位,那么它的模就是2^4 = 16

有一个非常重要的公式,就是正数+对应的负数在不丢弃最高位的情况下等于模数。这也就是为什么能够像上面那样进行正负数转化的一个重要原因。因为在正数和负数想相加等于模数。而这个公式里面的负数等于正数取反加1。。。。

。。。。。。。尼玛,说了半天怎么感觉还是乱乱的,算了,不管了,反正就知道这么两个事就行了。


1、负数=对应的正数取反+1

2、第一个式子之所以 可以这么推到是因为正数+对应负数=模数的原因

0 0