⼆进制减法计算,负数原码、反码和补码之间的关系
⼆进制减法类似于⼗进制的减法,我们从⼗进制的减法来推出⼆进制减法如何进⾏运算。
⼆进制计算
例如101001-011010=001111(41-26=15)的运算。
灰⾊部分为计算过程,绿⾊字为被减⼀得到的数,红⾊字为借⼀后得到的数。
在运算过程中,从右往左逐位进⾏计算。
1-0=1;
0不够减1,向前借⼀后加2变成2;2-1=1;
负数二进制补码运算法则
0在上⼀步被借⼀所以减为-1,-1不够减0,向前借⼀后加2变成1;1-0=1;
1在上⼀步被借⼀所以减为0,0不够减1,向前借⼀后加2变成2;2-1=1;
0在上⼀步被借⼀所以减为-1,-1不够减1,向前借⼀后加2变成1;1-1=0;
1在上⼀步被借⼀所以减为0,0-0=0.
由此推出:数不够减就向前借⼀位,然后该数加2.
可见⼆进制和⼗进制减法的区别就是向前借⼀后加2.
原码、反码和补码之间的关系:
1. 负整数求补码:将负整数转换为⼆进制得到其原码(最⾼位为符号位1(正整数0,负整数为1)),将其取反得到其反码,然后加1,
得到其补码;
2. 负整数知补码求原码:将补码减⼀,取反得到其反码;
3. 正整数的原码等于反码等于补码,最⾼位为0;