正数补码就原码吗?
正数的补码就是原码本身,负数的补码是其反码加1。
计算机中的有符号数有即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
补码:在反码的基础上加1,这样可以方便计算机进行计算,可以让“最高位符号位都能参与计算”。原码:字节的最高位为符号位,其余表示数值大小,最简单;反码:正数的反码和原码一样,负数的反码除最高位符号位外,其他位都取反。
补码
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,解决了符号的表示的问题,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计。
补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。补码概念的引入和当时运算器设计的背景不无关系,考虑到了数据存储和处理所需要的硬件代价。
以上内容参考 百度百科——补码
在计算机系统中,数值,一律采用补码表示和存储。
在计算机中,原码,是不存在的。
------------------------
补码,是一个“与负数等效”的正数。
使用了补码(正数)之后,在计算机中,就没有负数了。
同时,也就没有了减法运算。
由此,即可简化计算机的硬件。
正数,必须直接参加运算,不许做任何变换。
所以,正数,它根本就没有补码。
当然,总有些人,基本概念不清,强词夺理的说:
“正数本身就是补码”。
------------------------
正数,怎么就能“与负数等效”呢?
你看 2 位 10 进制数,数值是:0 ~ 99。
其计数周期就是:T = 10^2 = 100。
此时,可以有:
25 - 1 = 24
25 + 99 = (一百) 24
你只要舍弃进位,只保留 2 位数,+99 就和-1 等效。
---------------------
8 位 2 进制数,是:0000 0000~1111 1111。
(对应的十进制是:0 ~ 255。)
其计数周期就是:T = 2^8 = 256。
任何负数,加上 nT,都能换算成与其等效的正数。
如,-1 的等效值:-1 + 256 = 255 = 1111 1111。
---------------------
正常计算,可以这样做: 1 - 1 = 0。
用等效的正数计算,即: 1 + 1111 1111 = (1) 0000 0000。
你舍弃进位,只保留 8 位,这两种算法,效果就是相同的。
---------------------
这个“代替负数”的正数,就是计算机专业中的“补码”。
计算机专家,数学底子太洼,搞不懂什么是周期特性。
就自己胡编乱造:“符号位原码反码取反加一符号位不变”。
老外的算术能力差,由此可见一斑。