负数的补码

时间:2024-03-07 01:06:42编辑:奇事君

怎么求一个负数的原码和补码?

补码,来自于:补数。一般的常识:  钟表时针,倒拨 3 小时,可以用“正拨 9 小时”来代替。  同理,分针 倒拨 X 分,可以用 正拨 60-X 代替。  60 是分针的周期。十进制数,两位:0~99,周期就是一百。  -1 可以用 +99 代替。如: 25 - 1 = 24   25 + 99 = (1) 24忽略进位 1 百,结果就是相同的。那么,-1 的补数,就是 99 。   -2 的补数,就是 98 。   -X 的补数,就是【 周期 + 该负数 】。--------借助于补数,就可以用加法,代替减法运算。所以,计算机就可以节省硬件了。--------八位二进制:0000 0000~1111 1111(0~255)。周期是 256。那么,-1 可以用 1111 1111 (+255) 代替。即: -1 的补码,就是 1111 1111 (= 256-1=+255) 。 -2 的补码,就是 1111 1110 (= 256-2=+254) 。 。。。 -X 的补码,就是【 周期 + 该负数 】。 -128,就可以用 1000 0000 (= 128)代替 。 正数,不需要变换,直接运算即可。--------在计算机中,负数,就是用补码存储、计算的。原码和反码,毫无用处,它们在计算机中都不存在。

负数的补码怎么变回原码?

只需对其各位取反加一即可得到原码。从数学角度回答,假定在32位机器上。设某负数X,则X+X(反)= 0xFFFFFFFF。所以X+X(反)+1 = 0,可以得出 0 - X = X(反)+ 1。这里 0 - X即定义为负数X的补码,这样,计算机在进行X-Y运算时实际可用X+Y(补)代替,硬件角度只需实现加法电路即可。同样的道理,0-X(补)=X(补)(反)+1 = X,即已知负数补码只需对其各位取反加一即可得到原码。补码的意义补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:1、解决了符号的表示的问题。2、可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计。3、在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易。4、补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。总之,补码概念的引入和当时运算器设计的背景不无关系,从设计者角度,既要考虑表示的数的类型(小数、整数、实数和复数)、数值范围和精确度,又要考虑数据存储和处理所需要的硬件代价。因此,使用补码来表示机器数并得到广泛的应用,也就不难理解了。

上一篇:竞赛题

下一篇:儿童网站