所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
正数不说.....负数原码除符号位求反为反码,反码末位加1为补码,补码符号位改变为移码。。
计算机组成原理:原码,补码,反码,移码之间的关系?
最近复习计算机组成原理,遇到一个坎过不去,由于买的资料讲的过于繁琐,加上大学期间没有上过组成原理这门,导致现在已经完全绕晕,求高手指教。能简单的讲清楚这4者以及他们之间的关系吗?
------------
实际上,计算机,并不使用原码和反码。
在计算机系统中,数值,一律采用补码表示和存储。
(在一些特殊场合,才会用到移码。)
原码和反码,都是凭空捏造出来的,并不符合一一对应的编码规律。
而且,它们都没有计算功能。
所以,在计算机中,原码和反码,根本就不存在。
补码的原理,源自于计数系统的周期性。
所以,就可以用正数,代表负数参加运算。
例如:25 - 1 = 24
25 + 99 = (一百) 24
你如果舍弃超出 2 位数的进位,+99 就能代替-1。
同时,加法,也能代替减法运算。
2 位 10 进制,周期就是 10^2 = 100。
替代负数的正数,就是: 负数 + 周期(100)。
计算机用二进制,8 位 2 进制数的周期是:2^8 = 256。
那么,255 = 1111 1111 就可以代替-1。
254 = 1111 1110,就可以代替-2。
。。。
这些正数,就是:负数的补码。
---------------------
补码,与“原码反码取反加一”毫无关系。
老外数学不好,才弄出那些乱七八糟的东西!
计算机专业的老师,水平也太洼,捡来这些破烂,就当成宝贝了。
参考:网页链接。