二进制用补码做加减法怎么实现,举个例子??
用补码做减法运算时,结果出现的情况有正、0、负:
结果为正或者0时,补码是原码,直接转换成10进制即可;
结果为负时誉凯,需要将结果减1再保持符号位不变按位取反。
例如:1的原码是0000 0001,补码也是0000 0001
-2的原码是1000 0010,补庆和唤码是1111 1110
1-2=1+(-2)=0000 0001 + 1111 1110 =1111 1111
此时1111 1111 是1-2结果的补码,转换成原码是1000 0001,对应的十进制是-1.
计算过程,a-b转化为 a+(-b)然后补码相加
具体原理,我不知道你是不是指的是补码的设计原理,补码的设计原理请谷歌,理解的话就想着计算机就一套加法器,这种东西会计算就御闷行。
请给最佳
补码=原码取反+1
X =-1.625,
Y =-5.25,
要求通过补码亩键举运算,求 X + Y、X-Y。
------------------
把数字都化为二进制,保留三位小数:
亮激X = -1.625 = -1.101B。
Y = -5.25 = -101.010B。
分别转换为八位补码:
[X]补 = 1111 0011。
[Y]补 = 1101 0110。
-------迅碧-----------
相加:
[X + Y]补 = 1111 0011 + 1101 0110 = (1) 1100 1001。
舍弃进位,只保留八位,(X + Y)的补码,就是 1100 1001。
再转为原码:
[X + Y]原 = 1011 0111。
求出对应的真值(记住:其中有三位小数):
X + Y = -0110.111B = -6.875。
------------------
相减:
[X - Y]补 = [X]补 + [-Y]补
= 1111 0011 + 0010 1010
= (1) 0001 1101。
舍弃进位,只保留八位,(X - Y)的补码,就是 0001 1101。
再转为原码:
[X - Y]原 = 0001 1101。
求出对应的真值(记住:其中有三位小数):
X - Y = +0011.101B = +3.625。
------------------