一、数制
常用的数制有二进制(Binary)、十进制(Decimal)、十六进制(Hexdecimal)和八进制(Octal)。感觉八进制不常用啊。。。
1.1 十进制→二进制
(64.03)10=(?)2
整数部分:
64/2=32——余0
32/2=16——余0
16/2 = 8——余0
8/2 = 4——余0
4/2 = 2——余0
2/2 = 1——余0
1/2 = 0——余1
从下往上为整数部分二进制结果1000000
小数部分:
0.03x2=0.06——整数部分0
0.06x2=0.12——0
0.12x2=0.24——0
0.24x2=0.48——0
0.48x2=0.96——0
0.96x2=1.92——1
0.92x2=1.84——1
0.84x2=1.68——1
0.68x2=1.36——1
0.36x2=0.72——0
从上到下为小数部分0.0000011110(精确到了小数点后10位有效数字)
因此(64.03)10=(1000000.0000011110)2
1.2 二进制→十进制
(101.011)2=(?)10
=22+0x21+20+0x2-1+2-2+2-3
=5.375
二、编码与码制2.1 原码、反码和补码
在数字电路中,十进制数字一般用二进制来表示,原因就是逻辑电路的输出高低电平刚好可以表示二进制数的1和0。在二进制数前增加一位符号位即可区分数字的正负,
正数符号位为0,负数符号位为1,这种形式称之为原码。
正数的原码、反码和补码都是自己。
负数的反、补码规则如下:
原码:1 1001(二进制增加符号位后的形式)
反码:1 0110(符号位对应取反)
补码:1 0111(反码+1) //“+1”这一操作使得正负相加刚好溢出
正数+对应负数的补码=0 !
2.2 常用编码
8421码、余3码、2421码、5211码和余3循环码都属于十进制代码。
8421码(BCD码):BCD码的每一位上的1都代表一个固定的十进制数,分别为8、4、2、1,将其代表的数值相加就是8421码对应的十进制数,属于恒权代码。
余3码:(十进制码+3),非恒权码,首尾互为反码。
2421码:恒权码,首尾互为反码。
5211码:恒权码,分频器中有作用?
余3循环码:变权码,格雷码舍去前三个就是余3循环码。
8421码 | 余3码 | 2421码 | 5211码 | 余3循环码 | |
0 | 0000 | 0011 | 0000 | 0000 | 0010 |
1 | 0001 | 0100 | 0001 | 0001 | 0110 |
2 | 0010 | 0101 | 0010 | 0100 | 0111 |
3 | 0011 | 0110 | 0011 | 0101 | 0101 |
4 | 0100 | 0111 | 0100 | 0111 | 0100 |
5 | 0101 | 1000 | 1011 | 1000 | 1100 |
6 | 0110 | 1001 | 1100 | 1001 | 1101 |
7 | 0111 | 1010 | 1101 | 1100 | 1111 |
8 | 1000 | 1011 | 1110 | 1101 | 1110 |
9 | 1001 | 1100 | 1111 | 1111 | 1010 |
权 | 8、4、2、1 | 2、4、2、1 | 5、2、1、1 |
格雷码(Gray Code)又称循环码。
从低位到高位变化的顺序一次是0110, 00111100, 0000111111110000, 00000000111111111111111100000000 以此类推。
编码顺序 | 二进制代码 | 格雷码 |
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
格雷码相邻两个代码之间只有一位发生变化,这种编码方式的好处是在代码转换时,不会产生过渡噪声。普通的二进制代码带代码转换过程中,若需要变化的位数大于一,则在极短的瞬间可能产生中间状态,这个就是转换过程中的噪声。
2.3 ASCII码
来自百度:ASCII ((American Standard Code for Information Interchange)美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。
共128个7位二进制代码,其编码形式为 b7b6b5 b4b3b2b1 。个人理解高3位为分组位(也包含信息),低4位为信息位,同一英文字母的大小写对应的ASCII码低4位相同。
A : 100 0001
a : 110 0001
文章评论(0条评论)
登录后参与讨论