当前位置:文档之家› 第1章 数和码制

第1章 数和码制

*微机组成:CPU、MEM、I/O微机的基本结构微机原理(一):第一章数制和码制§1.1 数制(解决如何表示数值的问题)一、数制表示1、十进制数表达式为:A =∑-=•110 nmi iAi如:(34.6)10= 3×101 + 4×100 + 6×10-1 2、X进制数表达式为:B =∑-=•1 NM iiX Bi如:(11.01)2= 1×21 + 1×20 + 0×2-1+ 1×2-2(34.65)16= 3×161 + 4×160 + 6×16-1+ 5×16-2X进制要点:X为基数,逢X进1,X i为权重。

(X个数字符号:0,1,…,X-1)区分符号:D-decimal (0-9),通常D可略去,B-binary (0-1),Q-octal (0-7),H-hexadecimal (0-9, A-F)常用数字对应关系:D: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13,14,15B:0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111H: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F二、数制转换1、X →十方法:按权展开,逐项累加。

如: 34.6 Q= 3×81 + 4×80 + 6×8-1 = 24 + 4 + 0.75 = 28.75 D2、十→X即:A十进制=B X进制令整数相等,即得:A整数=(B N-1·X N-1 + … + B1·X1)+ B0·X0此式一次除以X可得余数B0,再次除以X可得B1,…,如此直至得到B N-1令小数相等,即得:A小数=B-1·X-1 +(B-2·X-2 + … + B-M·X-M)此式一次乘X可得整数B-1,再次乘X可得B-2,…,如此直至得到B-M.归纳即得转换方法:除X取余,乘X取整。

(适用于任意进制转换)如:十→二: 25.375 D= 11001.011 B2 | 2 5· 2 x 0.375 ·1 2 1 x 0.750 06 0 x 1.50 13 0 x 1.00 11 1 00 1十→八:346.152 D= 532.1157 Q (“四舍五入”改为“到半进一”)8 | 3 4 6· 8 x 0.152·4 3 2 x 1.216 15 3 x 1.728 10 5 x 5.824 5x 6.592 6x 4.736 4……3、二十六,二八(简捷方法)方法:四合一,一分四;三合一,一分三。

自小数点开始:←·→如:二→十六:1011011.011001 B=0101 1011.0110 0100B = 5B.64 H十六→二:3A.5D H=二→八: 1011011.011001 B =001 011 011.011 001 B = 133.31 Q八→二:46.15 Q =三、数的运算1、算术运算加减乘除如: 00110110 10011011 11 0011+ 01000111 - 01010110 ×10 011/ 101001111101 01000101 00 011+ 11 100110 011102、逻辑运算与或异非如: 01110110 10010011 10000011AND 01000111 OR 01010010 XOR 01010010 NOT 10010011 01000110 11010011 11010001 01101100 算法:有0得0 有1得1 相同得0 每位取反常用于:按位清0 按位置1 整体清0 整体取反四、BCD和ASCII1、BCD:二进制编码的十进制数即:十进制数的每一位用4位二进制数表示。

优点:比二进制更直观,机器可识别。

缺点:运算麻烦,需调整。

如: 36.9 = (0011 0110.1001)BCD(0011 1001)BCD= 39 , 注意:前者≠00111001B = 57分为:组合BCD(每字节放两位),如:35 =(0011 0101)BCD分离BCD(每字节放一位),如:47 =(xxxx 0100 xxxx 0111)BCD 用BCD码运算时,结果要进行调整(否则,结果可能有误):加法调整:加6调整(Di有进位吗?Di>9吗?)如: 0001 1001 19 0011 0110 36 BCD码+ 0100 1000 48 + 0100 0111 47 BCD码0110 0001 61(有进位) 0111 1101 7D( >9 ) 非BCD码 + 0000 0110 06 + 0000 0110 06 调整0110 0111 67 1000 0011 83 变回BCD码减法调整:减6调整(Di有借位吗?)如: 0110 0101 65 BCD码- 0011 0111 37 BCD码0010 1110 2E(有借位) 非BCD码- 0000 0110 06 调整0010 1000 28 变回BCD码2、ASCII:字符代码(即用7位二进制数表示常用的字符,共27=128个。

第8位通常用作校验位。

)如:′R′= 52H = 1010010B′0~9′= 30H~39H, ′A~Z′= 41H~5AH,′+′= 2BH 若加校验位(ASCII共8位),则:偶校验:补一校验位,使1的总个数为偶数。

如:加偶校验后,R的ASCII = 11010010B奇校验:补一校验位,使1的总个数为奇数。

如:加奇校验后,R的ASCII = 01010010B§1.2 码制(解决如何表示有符号数的问题)机器数:将符号数字化,并与数值结合在一起,形成的(适于机器识读的)有符号数。

真值:机器数的实际数值(即符号没经数字化的有符号数)。

一、原码和补码1、原码(积)定义:设|X| =X n-2…X1 X0, 则[X]原= 0 X n-2…X1 X0,当X≥0[X]原= 1 X n-2…X1 X0,当X≤0如:X1= +1001010 则[X1]原=01001010X2= -1001010 则[X2]原=11001010原码真值范围:[1 1…1,0 1…1] ,即:[最小,最大]8位原码的真值范围:[1 1111111,0 1111111],即:-127 ~+1272、补码(和)同余概念:a +NK =a (mod K)(同余数相差模,同模内则唯一。

类似于:生日)补码定义:(n位补码,mod 2n)[X]补= X,当0≤X<2n-1[X]补= 2 n+X,当-2n-1≤X<0 (编码)补码实质,即:[X]补=0-|X|= * *…* = D-+ D+,(X<0) (即代数和)可见:正数的补码同原码,负数才有求补问题。

以2n为模,称2补码。

n位补码的真值范围:[1 0…0,0 1…1] ,即:[-2n-1,+2n-1-1]8位补码的真值范围:[1 0000000,0 1111111],即:-128 ~+127补码求法:①、按定义求:[X]补= 2 n + X,X<0如:X = -1001010B,n=8, 则[X1]补= 2 8 + (-01001010B)= 100000000B - 1001010B = 10110110B (减法不方便)或:[X1]补= 0-|X|=00000000B-01001010B=10110110B (结果相同)②、由原码求:[X]补=[X]原符号位不变,其余取反加1*推导:设X =-X n-2…X1 X0, (X<0), 则[X]原=2n-1 + X n-2…X1 X0,[X]补= 2 n + X =2n-1 + 2n-1 + X=2n-1 + (1…1 + 1) + X =2n-1 + (1…1-|X|) + 1=2n-1 + + 1=[X]原符号不变、其余取反+1如: X = -1001010B,n=8, 则[X]原= 11001010B[X]补=10110101B+1 = 10110110B (原码→补码,更容易求)补码→原码:[[X]补]补= [X]原如:[X]补= 10110110B, 则[X]原= [[X]补]补=11001001B+1 = 11001010B补码→真值:①由补码变到原码,再得出真值(正数:原码=补码;负数:原码=补码的符号位不变、其余取反+1)如:[X1]补= 00110110B, 则,[X1]补真值=+0110110B = +54[X2]补= 10110100B, 则[X2]原= [[X2]补]补=11001011B+1 =11001100B[X2]补真值=-1001100B = -76②直接按正负代数和计算,得出真值如:[X2]补= 10110100B, 则[X2]补真值=-2 7 + 0110100B = -128+52 = -76 求负运算:设[Y]补=Y n-1…Y1 Y0, 则[-Y]补= + 1 ( 即:求负=取反+1, 易证:0-X=X反+1) 补码运算:[X+Y]补= [X]补+[Y]补, (mod 2n);(前后同余,不溢则同模)[X-Y]补= [X]补-[Y]补= [X]补+[-Y]补如:00100100B+11110001B=00010101B即:[36]补+[-15]补= [21]补溢出判别:( 溢出即超出了补码的真值范围:[-2n-1,+2n-1-1] )*推导如下:(易知:正+负√负+正√正+正?负+负?)00110000 [ +48]补10100000 [ -96]补+ 10000000 [-128]补 + 01110000 [+112]补10110000 [ -80]补√(进位00)00010000 [ +16]补√(进位11)01000000 [ +64]补10010000 [-112]补+ 01010000 [ +80]补 + 10100000 [ -96]补10010000 [-112]补×(进位01)00110000 [ +48]补×(进位10)二、定点数和浮点数(解决如何使数值范围足够大的问题)1、定点数:小数点位置固定(隐含)。

(特点:格式简单、真值范围小)①约定小数点在最高数值位之前,则为纯小数。

格式:1位符号位·n位数值位(原码)真值范围:[-(1-2-n),+(1-2-n)],即:[-0.1…1,+0.1…1 ]绝对值:最大值为1-2-n,最小值为2-n如:纯小数定点数01001101B,真值为+0.1001101B纯小数定点数10010010B,真值为-0.0010010B②约定小数点在最低数值位之后,则为纯整数。

相关主题