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

计算机使用补码运算吗?

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

  • 写回答

3条回答 默认 最新

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

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

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

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

    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日

悬赏问题

  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物