paul亡命天涯 2022-07-21 20:44 采纳率: 66.7%
浏览 44

计算机使用补码运算吗?

计算机是使用补码形式存储在硬盘的,那计算机在运算时,比如进行加法运算,也是先将数字都转成补码再运算的吗?

  • 写回答

3条回答 默认 最新

  • 林地宁宁 2022-07-21 21:50
    关注

    结论上而言,对于有符号的整数,确实都是使用补码运算的。至于“转成补码再运算”成补码这个说法,可能不太准确,应该说你代码里面的有符号整数常量,在编译成代码时,就已经提前将有符号整数常量转成补码形式,不需要在运算前一刻再转成补码;其他地方传过来的有符号整数,也是提前就转为补码形式的,不需要再转换。

    只有当遇到类型不匹配的时候,编译器或者解释器才会将数字转为对应类型,而这个运行时的类型转换,可能不一定会转为补码,也可能会转为无符号数运算,甚至有可能转为浮点数运算,而这取决于程序本身了。

    BTW,现代处理器指令集中,大多都会对不同的数据类型有不同的指令,补码运算的好处就是,其和原码运算的操作一样,因此可以和原码运算共用一套计算体系。从这样看来,补码和原码其实没有太多区别,只是取决于你“怎么看待它”。此外,浮点数有自己的格式规范,所以会有另一套专供浮点数运算的指令。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日