为什么要用补码相加来表示减法运算
2019-06-12 本文已影响0人
莞工米兔
计算机运算器只有加法计算器没有减法计算器,因此减法运算要用负数相加代替。
最简单的例子:1-1=0,可以表示为1+(-1)=0,用8位二进制数表示1、-1的话,分别为0000 0001、1000 0001
最高位0、1分别表示正负,如果直接用0000 0001和1000 0001相加的话得到的结果并不为0,而我们知道两个相反数的和为0,这时候就需要计算机把这两个有符号的二进制数分别转换成各自的补码进行相加才能得到正确的结果0。
负数的补码等于其符号位不变,其余各位取反(即反码)再加1,如1000 0001→1111 1110→1111 1111
正数的补码和反码等于其原码,如:0000 0001→0000 0001
这时候1111 1111+0000 0001=0000 0000(忽略掉符号位的进位)得到正确的结果0.