Chinaunix
标题:
补码的原理
[打印本页]
作者:
blackfur
时间:
2013-10-27 22:38
标题:
补码的原理
比如10进制的3位数运算,先不考虑溢出,即运算结果<=999:
167-52=167+(-52)=167+(999-52)-1000+1=167+947-1000+1=1114-1000+1=114+1=115,该例子中(-52)的补码是999-52=947,167是正数,补码就是自己本身。
以下总结一下操作步骤:
1、将运算转化为加法。
比如001-002转化为001+(-002);
2、将数字分为符号与补码两部分。
+001:符号位为0(0表示正,1表示负)、补码为001,
002:符号位1,补码997;
3、两补码相加,结果分成(进位)与(数值)两部分。
比如001+997:进位0,数值998;
4、(进位)分别与(数值)、(符号)相加。
比如(进位)+(数值):0+998=998,
(进位)+(符号):0+1+0=1(按二进制运算相加取个位,比如1+1+0=0);
5、最后转回原码。
比如符号位1,数值998:-001;
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2