
在计算机系统中,数值,一律用补码表示和存储。
为什么用补码?
就是为了:简化硬件,节约成本。
因为,负数,是可以用一个正数(补码)代替的。
如: 24 - 1 = 23
24 + 99 = (一百) 23
忽略进位,用 +99 就可以代替-1。
+99,就是-1 的补数。 计算机用二进制,就称为:补码。
用补码(正数)代替了负数,那么,计算机中,就没有负数了。
那么,在计算机中,就只有加法运算了。
所以,在计算机中,只需设置一个加法器,便可加减通吃了。
-------------
定点整数的补码(mod=2^n)定义式如下:
[X]补 = X( 0 ≤ X < 2^(n-1) )
[X]补 = 2^n - | X |(-2^(n-1) ≤ X < 0 )
当 n = 8 时,[-128]补 = 256-128 = 1000 0000B。
-------------
定点小数的补码(mod=2)定义式如下:
[X]补 = X ( 0 ≤ X < 1 )
[X]补 = 2 + X (-1 ≤ X < 0 )
因此,-10 的补码为 2 +(-1) = 10000。
-------------
已知一个数的补码,求原码的 *** 作其实就是对该补码再求补码:
1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
例如:已知一个补码为11111001,则原码是10000111(-7)。因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;再加1,所以是10000111。
扩展资料:
数的表示:
在数的表示上通过人为的定义来消除编码映射的不唯一性,对转换后的10000000强制认定为-128。当然对原码和反码也可以做这种强制认定,那为什么原码和反码没有流行起来?原码和反码没有流行起来,是因为在数的运算上对符号位的处理无法用当时已有的机器物理设计来实现。
由于原码和反码在编码时采用了硬性的人工设计,这种设计在数理上无法自动的通过模来实现对符号位的自动处理,符号位必须人工处理,必须对机器加入新的物理部件来专门处理符号位,这加大了机器设计难度,加大的机器成本,不到万不得已,不走这条路。
参考资料:
百度百科--补码
以上就是关于什么是原码、反码、补码全部的内容,包括:什么是原码、反码、补码、怎么求补码的原码、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)