计算机使用补码运算吗?

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

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

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

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

在进行运算时,转换成补码运算。要看数字大小转化为原码

首先回答是的,计算机在计算时都是补码计算原码显示.
1.正数的原码,反码,补码相同所以看起来正数的运算是用原码运算.
2.负数的反码=原码符号位不变其余位按位取反.补码+反码加1.
3.由于CPU只有加法器,所以在计算减法时,使用补码可以忽略正负直接相加,将所得结果用原码显示.