首页 > 编程知识 正文

两个负数的补码运算,负数的补码怎么求

时间:2023-05-04 07:34:50 阅读:144171 作者:2511

这篇文章是我的第一个博客,用来帮助和我一样迷茫的朋友。 如果对你有帮助的话,请称赞我。 引用时也请注明出处。 在读这篇文章之前,你需要知道原码的反码完成。 关于这些,我推荐大人物的报道。 在此添加关于原始代码反转和补码的知识。 a例如, 5的补码是0,0101-5的补码是1,110。答案是从右向左补充符号位! 那么,5的补数必须保证0000 0101-5的补数保证1111 1011b进行运算时位数足够,即不发生数据溢出。 否则结果会错的。 1 .即使将整数运算,例如:(12 )-8 )转换为补数格式并逐比特地进行相加,编码比特运算获得的值保持为已编码比特。 如果出现多馀的位,则舍去多馀的位。

这里采用了6位二进制数(范围-2^6~ 2^6-1)。

二进制0 10100=二进制加20

请再给我一个负数! (请记住是各位的对应)

二进制0 00101=二进制加5

现在让我再强调一次。 多余的位需要舍去。 符号位运算的值仍然是符号位。

2 .小数之间的运算

例如:

12.625 7=12 0.625 7

17这里不介绍。

0.625采用“平方取整法”二进制可以得到0.101 ()这里不能直接百度,相信你! )

正19用二进制表示为0 10011。

0 10011 0.101

也就是说,二进制结果为0 10011.101 (开头的0为编码比特)

等于19.625

进而,例如:

7-0.375

如果用“乘方取法”将0.375设为二进制数,则得到0.011。 那么,-0.375是1.011。 补数的形式为1.101(1 (加1在最后),变为8位的二进制的为1 1111.101 )

也就是说,结果为10(0110.101 ),最左边的1是溢出值,因此将其截断。

0 0110.101= 6.625

以上是我自己的拙见,可能有不当之处或错误之处。 细心点,如果你发现了,请指出来!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。