发布网友 发布时间:2022-05-16 05:44
共4个回答
热心网友 时间:2023-10-12 22:03
两个位数不同的补码相加方法是:对于正数,也就是第一位的符号位为0,反码,补码,原码相同。对于负数,补码和原码的关系是原码除符号位的其他位取反后加1,如101010的补码即为,先除去符号位的其它位取反得:110101(这个称为原码的反码)再加1,得:110110。
扩展资料:
例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6
在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。
对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1成为100000000(9位),但因只有8位,最高位1自然丢失。
又回了00000000,所以8位二进制系统的模为2^8。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。
参考资料来源:百度百科-补码
热心网友 时间:2023-10-12 22:03
两个位数不同的补码相加方法是:热心网友 时间:2023-10-12 22:03
x=-1.625,补码是 10.011
y=-5.25,补码是 1010.11
做 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。
舍弃进位,保留八位的补码 1100 1001。
再转为原码:
[X + Y]原 = 1011 0111。
原码中有三位小数,求出对应的真值:
X + Y = -0110.111B = -6.875。
完。
热心网友 时间:2023-10-12 22:04
首先将小数点对齐,然后按照最长的位数将整数部分的补码补成同样长度,再相加,最后结果看符号位是什么来决定正负。