数制和编码

数制:

进位计数制:按进位的原则进行计数。

                      每种进位计数制中允许使用的数符总数称为基数底数

N进制:以N为基数的计数体制。

              1.有N个数符:0~N-1

              2.逢N进1

              3.

Ki表示第i位的 系数,N^i表示第i位的 (位权)
左边为位置计数法(并列表示式)
右边为多项式表示法(按权展开法)
按权展开法可以将任意N进制数转化为10进制数

十进制:基数N=10,系数Ki=0~9,第i位的权N^i:10^i

               (7642)10 = 7*10^3+6*10^2+4*10^1+2*10^0

二进制:基数N=2,系数Ki=0、1,第i位的权N^i:2^i

               (101111)2 = 1*2^5+0*2^4+1*2^3+1*2^2+1*2^1+1*2^0=(47)10

二进制:基数N=8,系数Ki=0~8,第i位的权N^i:8^i

               (1352)8 = 1*8^3+3*8^2+5*8^1+2*8^0=(746)10

十六进制:基数N=16,系数Ki=0~9,A,B,C,D,E,F,第i位的权N^i:16^i

                  (2EA)16 = 2*16^2+14*16^1+10*16^0=(746)10

数制转换:

任意N进制数转化为十进制数:按权展开法

十进制数转任意N进制数:整数部分:除N取余法 小数部分:乘N取整法

十进制转二进制:整数部分:除2取余法 小数部分:乘2取整法

注意:小数部分乘2取整的过程不一定能使最后乘积为0,因此转化值存在一定的误差

二进制数和八进制数、十六进制数之间的转化:

1.二进制数转八进制数、十六进制数:

小数点前:三(四)位为一组不足左补零转为八(十六)进制数

小数点后:三(四)位为一组不足右补零转为八(十六)进制数

(110101.011000111)2 = (110   101   .   011   000   111)2 = (6   5   .   3   0   7)8

(110101.011000111)2 = (0011   0101   .   0110   0011   1000)2 = (3   5   .   6   3   8)16

2.八进制数、十六进制数转二进制数:

八进制数转二进制数:1位变3位

十六进制数转二进制数:1位变4位

(2EA)16 =(0010   1110   1010)2

编码:

带符号数的编码:

在数字系统中,要处理的不仅有正数,还有负数。为了表示带符号的二进制数,在定点整数运算的情况下,通常以代码的最高位作为符号位,用0表示正,用1表示负,其余各位为数值位。代码的位数称为字长,它的数值称为真值

原码:符号位+数值位

正数:0+数值位 负数:1+数值位

[+16]原 = 00010000    [-16]原 = 10010000

反码:正数反码与其原码相同,即符号位加数值位;负数反码是符号位为1,数值位各位取反。

[+16]原 = 00010000    [+16]反 = 00010000

[-16]原 = 10010000    [-16]反 = 11101111

补码:正数和0补码与其原码相同;负数补码是将其原码的符号位保持不变,对数值位逐位求反,然后在最低为加1。

定义:字长为n的整数N的补码

[N]补 = N    0 <= N <  2^(n-1)

            2^n+N     -2^(n-1) <= N < 0

[+16]原 = 00010000    [+16]反 = 00010000      [+16]补 = 00010000

[-16]原 = 10010000    [-16]反 = 11101111       [-16]补 = 11110000

原码、反码、补码所表示的数的取值范围:

原码:-(2^(n-1)-1)~+(2^(n-1)-1)

反码:-(2^(n-1)-1)~+(2^(n-1)-1)

补码:-2^(n-1)~+(2^(n-1)-1)

原码,反码都有两个0,而补码的0唯一

如果知道一个数的补码,可以用{[X]补}补 = [X]原   求其原码和真值。

如:4位字长的原码、反码其数值表示范围均为-7~+7,而补码的数值表示范围为-8~+7;

+0的原码、反码、补码均为0000,-0只有原码1000和反码1111,而没有补码;

-8只有补码1000,而没有原码和反码。

补码的运算:

[X+Y]补 = [X]补+[Y]补

[X-Y]补= [X]补+[-Y]补

补码相加时,符号位参与运算,若符号位右进位,则自动舍去。

根据[X+-Y]补的结果求出[X+-Y]原  进而求出X+-Y的结果。(别忘了这步)

BCD码(二-十进制编码):

BCD码是用4位二进制码的10种组合表示十进制数的0~9。

1.8421BCD码:它和自然的二进制码相似,各个位的权值为8.4.2.1,故称为有权BCD码。

它选用了四位二进制码中的前10组代码,即用0000~1001分别代表十进制数的0~9,余下的六组代码1010~1111不用。

2.5421BCD码和2421BCD码:它们均属于有权BCD码。这两种 BCD码的编码方案是不唯一的。如5421BCD中5可以用1000表示,也可用0101表示;2421BCD中6可用1100表示,也可用0110表示。2421BCD中0和9、1和8、2和7、3和6、40和5互为反码,因此称2421BCD有对9互补的特点。

3.余三码:是8421BCD码加3(0011)形成的,也具有对9互补的特点。

转换:直接按位(组)转化。

(3.6)10 = (0011.0110)8421BCD = (11.0110)8421BCD

(101 0001 0111 1001)8421BCD = (5179)10

可靠性编码:

1.格雷码:格雷码是一种典型的循环码。

循环码特点:1.相邻性:任意两个相邻码组间仅有一位的状态不同;

                      2.循环性:首尾两个码组也具有相邻性。

 

2.奇偶校验码

代码(或数据)在传输和处理过程中,有时会出现代码中的某一位由 0 错变成 1,或 1 变成 0。奇偶校验码由信息位和一位奇偶检验位两部分组成。
信息位:是位数不限的任一种二进制代码。
检验位:仅有一位,它可以放在信息位的前面,也可以放在信息位的后面。

奇校验(odd codes) :信息位与校验位1的个数之和奇数。

偶校验(odd codes) :信息位与校验位1的个数之和偶数。

ASCII码:

ASCII码即 “美国国家标准信息交换码” 的英文缩写,常用的有两种:

ASCII-7编码用7 位二进制编码表示一个字符,共可表示 128 个不同的字符。通常使用时在最高位添 0 凑成 8 位二进制编码,或根据实际情况将最高位用做校验位。
ASCII-8编码用 8 位二进制编码表示一个字符,共可表示 256 个不同的字符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值