数制与编码
符号数的表示
符号-数值表示法–原码
零有两种表示(+0、-0)
00000000=+0 10000000=-0
- 8位二进制码能够表示的带符号十进制数中,最大的数是+127,最小的数是-127
- n位二进制整数表示的范围:−(2n−1−1)→+(2n−1−1)-(2^{n-1}-1)\rightarrow+(2^{n-1}-1)−(2n−1−1)→+(2n−1−1)
补码数制(Complement Number Systems)
- 基数补码(Radix-Complement):从rnr^nrn中减去该数
- 基数减一补码(反码)(Diminished Radix-Complement):从rn−1r^n-1rn−1中减去该数
二进制反码表示法(Ones’-Complement Representation)
- 正数的二进制反码表示与原码相同
- 负数的二进制反码表示:在n位系统中等于2n−1−A2^n-1-A2n−1−A,即符号位不变,其余各位在原码的基础上按位取反
二进制补码(Two’s-Complement)
-
正数的二进制补码表示与原码相同
-
负数的二进制补码表示:反码+1
-
n位二进制补码(Two’s-Complement)表示范围:−2n−1→+(2n−1−1)-2^{n-1}\rightarrow+(2^{n-1}-1)−2n−1→+(2n−1−1)
约定字长(8比特)后,补码表示数的范围:-128~+127
二进制补码的加法和减法
- 加法规则:按普通二进制的加法相加
- 减法规则:将减数求补(two’s complement),再相加
如何判断溢出?
-
对于二进制补码,加数的符号相同,和的符号与加数的符号不同。(或者,符号CinC_{in}Cin与符号CoutC_{out}Cout不同)
-
对于无符号数,若最高有效位上发生进位或借位,就表示结果超出范围
cin→c_{in}\rightarrowcin→ 低位向最高有效位(即符号位)的进位。
cout→c_{out}\rightarrowcout→ 最高有效位(即符号位)向更高有效位的进位
- Cin=CoutC_{in}=C_{out}Cin=Cout 说明没有溢出
- cin≠coutc_{in}\not=c_{out}cin=cout 说明有溢出
信息的二进制编码
编码:用于表示不同数或其他事件的一组n位二进制码的集合(set)
动作、条件和状态的编码
使用b位二进制编码来表示n个不同状态
字符编码
ASCII码
十进制数的二进制编码
-
如何使用4位二进制码(4-bit Binary code)表示1位十进制码(1-bit Decimal number)?
使用BCD码(Binary Coded Decimal)
-
负(Negative)的BCD数如何表示?
- 符号-数值表示:符号位的编码任意
- 十进制补码表示:0000正,1001负
-
BCD数的加法(Addition of BCD Digits)需要修正,+0110(+6)
8421码(自然二进制编码)
是一种加权码,因为每个十进制数码都可以由其码字求得,码字的每c一位有固定的权,从左到右的权分别为8、4、2、1
2421码
也是一种加权码,同时它还具有自反码的优点,即将任一数字的十进制数码,码字按位取反,即可得到该数字对应的十进制反码
Excess-3码
另一种自反码,不是加权码,与8421BCD码有算术关系。即:每一个十进制数的余3码,等于其对应的8421BCD码+3(001120011_200112)
二五混合码(Biquinary Code)
用了7位,码字的前2位表示十进制数是0-4还是5-9,后五位表示指定范围内的哪个数
独热码(One Hot Code)
又称10中取1码,每个编码字均为10位,在这10位中,只有1位为1,其他9位均为0,用于控制系统中
格雷码
特点:
- 任意相邻码字间只有一位数位变化
- 最大数回到0也只有一位码元不同
- 最高位的0和1只改变一次
格雷码的构造
构造规则1:
- 1位格雷码有两个码字:0和1
- (n+1)位格雷码中的前2n2^n2n个码字,等于n位格雷码的码字,按顺序书写,加前缀0
- (n+1)位格雷码中的后2n2^n2n个码字,等于n位各类码的码字,按逆序书写,加前缀1
构造规则2:(直接构造)
- 对n位二进制的码字从右至左编号(0~n-1)
- 若二进制码字的第i位和第i+1位相同,则对应的格雷码码字的第i位为0,否则为1
- (当n=i+1时,二进制码字的第n位被认为是0)
- 例如,(11010011)2(11010011)_2(11010011)2=(10111010)Gray(10111010)_{Gray}(10111010)Gray
本文详细介绍了数制中的符号数表示法,包括原码、补码和反码,以及二进制补码在加减法运算中的应用。此外,还探讨了信息的二进制编码,如动作、条件和状态的编码、字符编码,特别是重点讲解了不同的十进制数的二进制编码方式,如8421码、2421码、Excess-3码和独热码。最后,文章简要阐述了格雷码及其构造规则。

3724

被折叠的 条评论
为什么被折叠?



