该资料为大二学生(本人)的复习资料,如有不全,请见谅!如有错误,可评论区说一下,谢谢~
资料为《数字设计基础有应用》(第二版)+笔记。
进制P5-9
进制的特征
(以十进制为例)
基数为10,使用0、1、2、3、4、5、6、7、8、9共10个字符
第i位的权为
计数时逢10进1
十进制其实就是平时大家所用的算数规则,大家也很熟悉,其实所有的进制规则都可以类似于十进制推出来。
或许大家很疑惑,”第i位的权为“是什么意思呢?
以二进制为例 -> 第i位的权为
例如1.1:
第二位 第一位 第零位 第负一位 第负二位 第负三位
对应二进制的位置: 1 0 1 . 1 0 1
可以说就是从点“.”为起点开始算的
🔺主要用的进制为二进制、八进制、十进制、十六进制
需要注意的,十六进制的基数为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
其中A - F 分别对应着10 - 15。
2.进制的转换
从上面的例题1.1已经看到了二进制如何转变为十进制,那二进制怎么转变为十六进制呢?
例题1.2:
1️⃣四个数分一份
🔺因为十六进制的每个数都可以用四位的二进制来表示
🔶二进制的整数部分 -> 从小数点的左边开始数;二进制的小数部分 -> 从小数点的右边开始数
但是如果二进制的数不是4的倍数,无法分成完整的整数倍怎么办呢?
2️⃣凑零
🔶二进制的整数部分 -> 在最左边补零;二进制的小数部分 -> 在最右边补零
3️⃣计算
1000 -> 8
1100 -> C
1110 -> E
小数部分也是一样的
例题1.3
二进制如何转变为八进制?
方法基本一样,但是第一步就不是四个数分一份了,是三个数分一份,因为八进制用三位二进制就可以表示了,无需四位
例题1.4
在以上的转换中其实都经历了转变十进制的过程
那十进制如何转换成二进制呢?
例题1.5
🔺竖式连除法
其实就是218每次都除2,每次记录余数在右边,直到数为0截至。
例如:218/2 == 109 余0;109/2 == 54 余1
然后再将余数从下往上串起来就是答案了。
转换为十六进制也是一样的
3.带符号数的表达式
首先计算机里面是用8位的二进制数来表示一个数的,那传统的算数中的“+”(正号)和“-”(负号)就只能用0或1来表示。
最后人们规定:0为正,1为负
原码表达式
反码表达式:
🔺在原码的基础下,正数与原码表达式一样,负数则每一位取反即可
补码表达式:
🔺在反码的基础下,正数与反码表达式一样,负数则在反码基础上加1即可
一个特殊的例子
例题1.6
最终答案:
🔶可能有同学不知道二进制怎么运算的,觉得很奇怪,其实用十进制对比一下就知道了,十进制是逢10进1,而二进制就是逢2进1就对了。
原码补码的直接转换(简便方法)
🔶原码转为补码(负数时)
1️⃣右往左数第一个“1”,右边不动
2️⃣运算符不动
3️⃣其他取反
🔶补码转为原码(负数时)
1️⃣右往左数第一个“1”,右边不动
2️⃣运算符不动
3️⃣其他取反
符号的编码表达式P10-14
格雷码(Gray codes) - 无权码
🔺典型循环码
十进制 | 二进制编码 | 十进制 | 二进制编码 | 十进制 | 二进制编码 | |||
二进制码 | 格雷码 | 二进制码 | 格雷码 | 二进制码 | 格雷码 | |||
0 | 0000 | 0000 | 6 | 0110 | 0101 | 12 | 1100 | 1010 |
1 | 0001 | 0001 | 7 | 0111 | 0100 | 13 | 1101 | 1011 |
2 | 0010 | 0011 | 8 | 1000 | 1100 | 14 | 1110 | 1001 |
3 | 0011 | 0010 | 9 | 1001 | 1101 | 15 | 1111 | 1000 |
4 | 0100 | 0110 | 10 | 1010 | 1111 | |||
5 | 0101 | 0111 | 11 | 1011 | 1110 |
BCD码
🔺四位的二进制,每一位代表一个数
1.8421BCD码 - 有权码
8 -> ;4 -> ;2 ->;1 ->
例题2.1:
2.5421BCD码 - 有权码
与例题2.1同理
3.2421BCD码 - 自补码
🔺“自补”含义:若2个十进制字符之和为9,则这个2个字符关于“9”互补,而这两个字符对应的2421码互为反码,如2421码的0000与1111,0001与1110,0100与1011等
4.余3码 - 无权码
🔺余3码对应列的8421码多3
例如:
5.余3循环码 - 无权码
🔺二进制循环码(格雷码)去掉头尾3组编码后得到的,且保留了循环码的特性
十进制数 | 8421码 | 5421码 | 2421码 | 余3码 | 余3循环码 |
0 | 0000 | 0000 | 0000 | 0011 | 0010 |
1 | 0001 | 0001 | 0001 | 0100 | 0110 |
2 | 0010 | 0010 | 0010 | 0101 | 0111 |
3 | 0011 | 0011 | 0011 | 0110 | 0101 |
4 | 0100 | 0100 | 0100 | 0111 | 0100 |
5 | 0101 | 1000 | 1011 | 1000 | 1100 |
6 | 0110 | 1001 | 1100 | 1001 | 1101 |
7 | 0111 | 1010 | 1101 | 1010 | 1111 |
8 | 1000 | 1011 | 1110 | 1011 | 1110 |
9 | 1001 | 1100 | 1111 | 1100 | 1010 |
ASCII码
🔺采用7位二进制编码格式,共有128种不同的编码,用来表示十进制字符,英语字母,基本运算字符,控制符和其他符号
后期有有用的题目,会实时更新~
此次更新于:2023.03.06