数字逻辑——数制与编码(原码,补码,反码一次搞定)

数字逻辑——数制与编码(原码,补码,反码一次搞定)

进制转换

  1. 其他进制转十进制
    多项式展开
  2. 十进制转其他进制
    取余法
    1. 整数转整数
    2. 小数转小数
  3. 其他进制转其他进制
    • 借助十进制
    • 借助二进制:2进制的各种情况,比如2进制和8进制,8机制和16机制

二进制编码

  • 数字编码
    • 有符号码
      • 原码
      • 反码
      • 补码
    • 无符号码
      • 二进制码
      • 二-十进制码
      • 其他
  • 字符编码
    • ASCII编码
    • 汉字编码

有符号码:最高位表示符号位,0表示整数,1表示符数

首先我们要明确一点:

  • 正数的原码,反码,补码相同
十进制码原码反码补码
+7011101110111
  • 负数的因为不一样,因此求反码和补码的规则是针对负数的
    反码:符号位不变,其余各位0变1,1变0。
    补码:反码加1。
十进制码原码反码补码
-7111110001001
  • 0看作是+0,-0的补码和反码用来表示最小的那个负数
十进制码原码反码补码
+0000000000000
十进制码原码反码补码
-8100011111000

补码能够将减法运算改成加法运算:
我们从以下几个角度理解

  • 这是一个转换的过程,将数字的加减运算都转化成补码的运算
  • 因此运算输入与结果都是补码
  • 因为补码与原码一一对应,所以补码结果,唯一对应一个原码
  • 原码和反码,都明确符号位,但变成补码之后,符号位在形式上与原码反码一致,但补码的符号位是数值的一部分

由上可得我们的运算步骤:

  1. 将运算的两个数的原码转化成补码。
  2. 原运算无论加减,补码运算通通变成了加法。
  3. 补码相加(只有相加),得到补码结果。
  4. 将补码结果在一一对应回原码

为了阅读与理解方便我将-8到+7的原码反码,补码表放在下面。(这也说明了n位二进制位所表示的范围)

十进制码原码反码补码十进制码原码反码补码
+7011101110111-1100111101111
+6011001100110-2101011011110
+5010101010101-3101111001101
+4010001000100-4110010111100
+3001100110011-5110110101011
+2001000100010-6111010011010
+1000100010001-7111110001001
+0000000000000-8100011111000

下面举一个例子
-2 + -6 = ?

  1. 将运算的两个数的原码转化成补码。
    1110(-2)6(1010)

  2. 原运算无论加减,补码运算通通变成了加法。

  3. 补码相加(只有相加),得到补码结果。
    1110(-2)+6(1010)=1000

  4. 将补码结果在一一对应回原码
    补码1000唯一对应-8

2 + -4 = ?
0010 + 1100 = 1110
补码1110唯一对应-2

知其然,小朋友肯定会问为什么补码会有这么神奇的功效呢?

解答这个问题首先要引入模的概念。
之后更新。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值