我是靠谱客的博主 超级绿草,最近开发中收集的这篇文章主要介绍数字逻辑——数制与编码(原码,补码,反码一次搞定)数字逻辑——数制与编码(原码,补码,反码一次搞定),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
数字逻辑——数制与编码(原码,补码,反码一次搞定)
进制转换
- 其他进制转十进制
多项式展开 - 十进制转其他进制
取余法- 整数转整数
- 小数转小数
- 其他进制转其他进制
- 借助十进制
- 借助二进制:2进制的各种情况,比如2进制和8进制,8机制和16机制
二进制编码
- 数字编码
- 有符号码
- 原码
- 反码
- 补码
- 无符号码
- 二进制码
- 二-十进制码
- 其他
- 有符号码
- 字符编码
- ASCII编码
- 汉字编码
有符号码:最高位表示符号位,0表示整数,1表示符数
首先我们要明确一点:
- 正数的原码,反码,补码相同
十进制码 | 原码 | 反码 | 补码 |
---|---|---|---|
+7 | 0111 | 0111 | 0111 |
- 负数的因为不一样,因此求反码和补码的规则是针对负数的
反码:符号位不变,其余各位0变1,1变0。
补码:反码加1。
十进制码 | 原码 | 反码 | 补码 |
---|---|---|---|
-7 | 1111 | 1000 | 1001 |
- 0看作是+0,-0的补码和反码用来表示最小的那个负数
十进制码 | 原码 | 反码 | 补码 |
---|---|---|---|
+0 | 0000 | 0000 | 0000 |
十进制码 | 原码 | 反码 | 补码 |
---|---|---|---|
-8 | 1000 | 1111 | 1000 |
补码能够将减法运算改成加法运算:
我们从以下几个角度理解
- 这是一个转换的过程,将数字的加减运算都转化成补码的运算
- 因此运算输入与结果都是补码
- 因为补码与原码一一对应,所以补码结果,唯一对应一个原码
- 原码和反码,都明确符号位,但变成补码之后,符号位在形式上与原码反码一致,但补码的符号位是数值的一部分
由上可得我们的运算步骤:
- 将运算的两个数的原码转化成补码。
- 原运算无论加减,补码运算通通变成了加法。
- 补码相加(只有相加),得到补码结果。
- 将补码结果在一一对应回原码
为了阅读与理解方便我将-8到+7的原码反码,补码表放在下面。(这也说明了n位二进制位所表示的范围)
十进制码 | 原码 | 反码 | 补码 | 十进制码 | 原码 | 反码 | 补码 |
---|---|---|---|---|---|---|---|
+7 | 0111 | 0111 | 0111 | -1 | 1001 | 1110 | 1111 |
+6 | 0110 | 0110 | 0110 | -2 | 1010 | 1101 | 1110 |
+5 | 0101 | 0101 | 0101 | -3 | 1011 | 1100 | 1101 |
+4 | 0100 | 0100 | 0100 | -4 | 1100 | 1011 | 1100 |
+3 | 0011 | 0011 | 0011 | -5 | 1101 | 1010 | 1011 |
+2 | 0010 | 0010 | 0010 | -6 | 1110 | 1001 | 1010 |
+1 | 0001 | 0001 | 0001 | -7 | 1111 | 1000 | 1001 |
+0 | 0000 | 0000 | 0000 | -8 | 1000 | 1111 | 1000 |
下面举一个例子
-2 + -6 = ?
-
将运算的两个数的原码转化成补码。
1110(-2)6(1010) -
原运算无论加减,补码运算通通变成了加法。
-
补码相加(只有相加),得到补码结果。
1110(-2)+6(1010)=1000 -
将补码结果在一一对应回原码
补码1000唯一对应-8
2 + -4 = ?
0010 + 1100 = 1110
补码1110唯一对应-2
知其然,小朋友肯定会问为什么补码会有这么神奇的功效呢?
解答这个问题首先要引入模的概念。
之后更新。
最后
以上就是超级绿草为你收集整理的数字逻辑——数制与编码(原码,补码,反码一次搞定)数字逻辑——数制与编码(原码,补码,反码一次搞定)的全部内容,希望文章能够帮你解决数字逻辑——数制与编码(原码,补码,反码一次搞定)数字逻辑——数制与编码(原码,补码,反码一次搞定)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复