b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

反码和补码原码_原码 补码 反码_反码变原码(4)

电脑杂谈  发布时间:2017-02-01 17:02:25  来源:网络整理

先到这一步, -1的反码表示是1111 1110. 如果这里将[1111 1110]认为是原码, 则[1111 1110]原 = -126, 这里将符号位除去, 即认为是126.

发现有如下规律:

(-1) mod 127 = 126

126 mod 127 = 126

即:

(-1) ≡ 126 (mod 127)

2-1 ≡ 2126 (mod 127)

2-1 与 2126的余数结果是相同的! 而这个余数, 正式我们的期望的计算结果: 2-1=1

所以说一个数的反码, 实际上是这个数对于一个膜的同余数. 而这个膜并不是我们的二进制, 而是所能表示的最大! 这就和钟表一样, 转了一圈后总能找到在可表示范围内的一个正确的数!

而2126很显然相当于钟表转过了一轮, 而因为符号位是参与计算的, 正好和溢出的最高位形成正确的运算结果.

既然反码可以将减法变成加法, 那么现在计算机使用的补码呢? 为什么在反码的基础上加1, 还能得到正确的结果?

2-1=2(-1) = [0000 0010]原 [1000 0001]原= [0000 0010]补 [1111 1111]补

如果把[1111 1111]当成原码, 去除符号位, 则:

[0111 1111]原= 127

其实, 在反码的基础上1, 只是相当于增加了膜的:

(-1) mod 128 = 127

127 mod 128 = 127

2-1 ≡ 2127 (mod 128)

此时, 表盘相当于每128个刻度转一轮. 所以用补码表示的运算结果最小和最大应该是[-128, 128].

但是由于0的特殊情况, 没有办法表示128, 所以补码的取范围是[-128, 127]

本人一直不善于数学,每次都害怕计算进制转换和 反码补码等今天看到后瞬间明白,不要让一个问题绊倒你太久,不然每次遇到了都是个坑,曾经因为这是去一个好工作的机会呢! 所以如果文中有不对的地方请大家多多包含, 多多指点!

作者:旅大市

出处:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29941-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...