为什么补码可以将减法变成加法运算
ps 如无特殊说明,使用的是 8
位字长
两个机器数的加法运算:00001110 + 10001110 = 10011100
把这两个机器数看成是无符号数相加,那么他们的结果没有问题:
00001110
->14
10001110
->142
10011100
->156
00001110
->14
10001110
->-14
10011100
≠0
1
开头的有符号数,取它的绝对值进行相加00001110
->14
-
00001110
->-
14
00000000
->0
0
在在计算机中是 00000000
,那现在有一个数 100000000
在 8
位计算机中是不是也是 0
,因为它溢出了,最高位的 1
会被舍弃。现在只要找到一个数和
00001110
相加,得到的结果是 100000000
,舍弃高位不也等于 0
么。用手动计算
100000000 - 00001110
得到 11110010
。11110010
和 00001110
之间的关系:10001110
和00001110
之间的关系是互为相反数10001110
数值位取反得11110001
11110001
末尾 +1
得11110010
1
,数值位取反,末尾 + 1
【为什么补码可以将减法变成加法运算】这就实现了将减法运算转变成了加法运算。
推荐阅读
- 投稿|冷门的乡村题材,为什么越来越受欢迎?
- 贺涵为什么那么苏,因为听到了人民群众正义的呼声
- 早起两个小时,就可以画出漂亮眉毛了!
- Mybatis的使用(3)
- 面试突击69(TCP 可靠吗(为什么?))
- 面试突击69(TCP|面试突击69:TCP 可靠吗(为什么?))
- md5解密|为什么md5不可逆,却还可能被md5免费解密网站解密
- 为什么一些人隆鼻后变成了“猪鼻子”()
- 为什么越来越多的老鼠不怕猫----|为什么越来越多的老鼠不怕猫---- 一封信搅乱猫的初心
- 晓雪闲谈