当前位置:文档之家› 数制与编码

数制与编码

第一章数制与编码1.1 数制数制是计数的方法,通常采用进位计数制。

在进位计数制的多位编码中,数制是:⏹ 每一位的构成方法,以及⏹ 从低位到高位的进位规则。

常用的数制:⏹ 二进制(Binary )、 ⏹ 八进制(Octal )、 ⏹ 十进制(Decimal )、 ⏹ 十六进制(Hex-decimal )。

例如:十进制:⏹ 每一位——十进制数由0~9个数字符号(数码)和小数点组成, ⏹进位规则——“逢十进一”(基数为10)。

1.1.1 记数法和分析方法记数法——位置记数法, 分析方法——按权展开式。

例如:十进制数(652.5)10=6×102+5×101+2×100+5×10-1左边为“位置记数法”,右边为“按权展开式”。

代数式为:∑⨯=iiikD 10说明:每一个数位上的数码有不同的权值, ⏹ 权值从左到右以基数的幂次由大到小, ⏹ 数位从左到右由高位到低位排列。

例如:二进制数(101.11)2 = 1×22+0×21+1×20+1×2-1+1×2-2任意进制(基数为R )记数法:∑--=----==110121).()(n mi iiR m n n R R kk k k k k k D八进制和十六进制的按权展开式以此类推。

位置记数法 按权展开式1.1.2 数制转换数值相等,记数方法(数值)不同的数之间的转换。

数制转换的本质是——权值的转换。

1.1.2.1 任意进制到十进制的转换利用任意进制数的按权展开式,可以将一个任意进制数转换成等值的十进制数。

例如:(1011.01)2 =1×23+0×22+1×21+1×20+0×2-1+1×2-2=(11.25)10例如:(8FA.C)16=8×162+F ×161+A ×160+C ×16-1=2048+240+10+0.75=(2298.75)101.1.2.2 “十 二”进制转换考查整数部分,数的二进制按权展开式:设:(D )10可以由n 位二进制数表示,即 (D )10=(k n -1k n -2,…,k 1k 0)2 存在:(D )10=k n -1×2n -1+k n -2×2n -2+…+k 1×21+k 0×20 (D )10/2= k n -1×2n -2+k n -2×2n -3+…+k 1×20 + k 0 / 2((D )10/2商的整数部分)/2= k n -1×2n -3+k n -2×2n -4+…+k 2×20 + k 1 / 2“孤立”余数后,整数的商再除以基数2,依次类推;余数依次为从低到高位的二进制数位。

故而,十进制整数转换为二进制数,采用“除2取余”法。

例1.1:将(173)10转换为二进制数 解:余数整数的商余数整数的商考查纯小数部分——将十进制纯小数转换为二进制数设:(D)10=k-1×2-1+k-2×2-2+…+k-(m-1)×2-(m-1)+k-m×2-m存在:(D)10= k-1 +k-2×2-1+…+k-(m-1)×2-(m-2)+k-m×2-(m-1)整数部分为k-1“孤立”整数部分,小数部分再乘以基数2,依次类推。

故而,十进制小数部分转换为二进制数,采用“乘2取整”法。

例1.2:将(0.6875)10转换为二进制数解:例1.3:将十进制转换成二进制——(219.723)10解:思考:转换误差为多少?考虑最低有效位对应的权:2-m,m是保留的位数,若要保持原数据的精度,二进制小数位的位数应保留几位?1.2.3 “二 十六”进制转换由于4位二进制数恰好代表0~15共16种取值,而且将4位二进制数看作一个整体时,它的进位输出恰好是逢十六进一,所以采用“分组对应”法。

例如:将(1011101.101001)2转换为十六进制数从小数点,⏹ 整数部分从低到高4位一组,最高一组如不足4位高位以0补齐; ⏹小数部分从高到低4位一组,最低一组如不足4位低位以0补齐。

( 101 1101.1010 0100 )2所以,(1011101.101001)2=(5D.A4)16 。

1.1.2.3 “十六→二”进制转换采用“等值代替”法。

例如:(8FA.C6)16=( 1000 1111 1010 . 1100 0110 )2=( 100011111010.1100 011)2。

1.1.2.4 小结二进制、十六进制、八进制 数之间的转换方法为:(图1. 1)图1. 1 进制之间的转换方法其中,十进制到二进制的转换:⏹ 整数部分:除2取余,⏹纯小数部分:乘2取整。

5 D A 41.1.3 二进制正负数的表示及运算1.1.3.1 二进制四则运算⏹加法:1+1=0 进位1,逢二进位;⏹减法:0-1=1 借位1,逢二借位;⏹乘法:1×1=1,0×1=0;多位乘法,结合加法;⏹除法:多位除法,乘法结合减法。

1.1.3.2 二进制正负数的表示1.1.3.2.1 原码对于给定的字长,最高位为符号位,表示正负号:⏹0 ——正,⏹ 1 ——负,其余各位表示数的绝对值。

例如:设8-bit(含符号)字长,[(+43)10]=(0 010 1011)2=(2B)16[(-43)10]=(1 010 1011)2=(AB)10正数的无符号和有符号的表示方法相同,正数的原码是它本身。

1.1.3.2.2 反码负数的反码是对其绝对值正数的编码(正数原码)求反。

方法1:对绝对值位域求反;符号为:正数原码为”0”,则负数反码为”1”;方法2(推荐):对整个码字逐位取反。

例如:[(+25)10]=(0 001 1001)2=(+19)16[(-25)10]原=(1 001 1001)2[(-25)10]反=(1 110 0110)21.1.3.2.3 补码计算补码的方法1——“反码加一”,确切地说是:给定某数,若已知相反符号数的二进制编码(有符号数的补码编码,对于正数,补码编码与原码编码相同),将相反符号数的码字含符号位逐位取反,然后从最低位加上1。

这也是求相反符号数补码的方法。

特例:对于0的取相反符号数的操作。

例如,设字长4 bit,则有:(0000)2 —(取反)→ (1111)2 —(+1)→ 1 0000补码的性质:“0”的补码编码是唯一的。

可以用补码表示有符号的定点数,例如:(设:含符号位字长为8-bit ) (+25)10 = (0 001 1001)2 —(取反)→ [(1 110 0110)2]反 —(+1)→ [(1 110 0111)2]补例如:含符号位字长为8-bit ,对于[(-25)10]补的码字实施补码意义下“取相反符号”操作, [(-25)10]补=[(1 110 0111)2]补 —(取反)→ (0 001 1000)2 —(+1)→ (0 001 1001)2 补码的性质:补数的补数是原数。

例1.4:设含符号位字长为8-bit ,求(-39)10的补码表示 解:例1.5:设含符号位字长为8-bit ,给定补码为[(1110 1010)2]补,求该数的十进制表示 解:1.1.3.2.3.1 补码的性质——加减法运算负数采用补码表示后,就可以把减法转换为加法。

例如:39-22=39+(-22)=17,设8-bit 字长,可知 (+39)10=(0010 0111)2,(+22)10=(0001 0110)2,[(-22)10]原=(1001 0110)2,[(-22)10]补=(1110 1010)2。

方法1:原码运算000100010110000101110010-方法2:补码运算0001000111010111001110010+两种运算方法比较:⏹ 方法1——舍去 保持字长舍去 保持字长◆需要先判断被减数与减数的大小,以保证被减数大于减数;否则,◆需要调整次序并记录结果的符号。

⏹方法2——◆减法转换为加法;◆“符号位”参与运算;◆(如果有)进位,则自动丢失;◆运算结果仍是补码。

1.1.3.2.3.2 补码的性质——模和补数研究进位后自动丢掉的数,相当于数值2n,其中n为(含“符号”的)字长,它是“模”。

日常例子:钟表的模是12,如果要从八点拨到三点,两种方法:顺拨相当于加法,逆拨相当于减法。

本例中:逆拨数——5顺拨数——7达到同样的效果,顺拨数和逆拨数是关于模12的补数(即:相加等于模)。

补码的性质:补码的作用就是对所有的负数以其关于模2n的补数表示。

由此,可以由补数的关系计算补码。

计算补码的方法2——由补数的关系计算补码1:[-X]补=2n-[X]补补码的范围如图1. 2:图1. 2 补码取值范围的示意图1.1.4 代码及其码制数字系统中常用二进制代码来表示相关的对象。

编制代码要遵循一定的规则。

代码不只可以用来表示自然二进制数值,也不只能够表示数量的大小。

1注意:①有时候也将“补数”叫作“补码”,但与前述的“补码”的语义不同,“补数”强调的是与模的关系;②值得注意的是,有的提法,如:“‘补码’的‘补码’是‘原码’”,其中,“原码”是指最初给定的码字,后面一个“补码”是指施行“反码加一”操作——“在补码码制系统中,按照补码的求相反符号数的操作,对于给定的码字执行两次这样的操作,还会得到与原先相同的码字。

”1.1.4.1 BCD码——Binary Coded Decimal(二——十进制代码)0~9这十个符号的二进制编码,用4-bit二进制码元,各个二进制码元对应的权值不一定取自然二进制。

可以分为恒权码和无权码。

恒权码——各位数码对应着固定的权值。

1.1.4.1.1 8421码四位自然二进制编码0~9,10(A)~15(F)非法码字。

一般“BCD码”即指“8421 BCD码”。

1.1.4.1.2 余3码相对于自然二进制码,加上3。

以0011~1100表示0~9个字符。

特点:加法可产生进位,但加法结果(不含进位)必须减去0011。

1.1.4.1.3 2421码最高bit的权值为2,且规定前5个和后5个镜像对称取反——前五个0+(0,1,2,3,4),后五个1+(3,4,5,6,7) ,镜像对称码字后3位的模为“8”。

1.1.4.1.4 余3循环码取4-bit格雷码中连续10个代码组成,且仍保持其“单位距离”特性。

1.1.4.2 格雷码(循环码)格雷码(Gray Code),又叫作循环码。

相关主题