这篇文章是我的第一个博客,用来帮助和我一样迷茫的朋友。 如果对你有帮助的话,请称赞我。 引用时也请注明出处。 在读这篇文章之前,你需要知道原码的反码完成。 关于这些,我推荐大人物的报道。 在此添加关于原始代码反转和补码的知识。 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
以上是我自己的拙见,可能有不当之处或错误之处。 细心点,如果你发现了,请指出来!