收藏 分销(赏)

第1章 数制和码制.doc

上传人:pc****0 文档编号:9443205 上传时间:2025-03-26 格式:DOC 页数:8 大小:123KB
下载 相关 举报
第1章 数制和码制.doc_第1页
第1页 / 共8页
第1章 数制和码制.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
* 微机组成:CPU、MEM、I/O 微机的基本结构 微机原理(一): 第一章 数制和码制 §1.1 数制 (解决如何表示数值的问题) 一、数制表示 1、十进制数 表达式为:A = 如:(34.6)10 = 3×101 + 4×100 + 6×10-1 2、X进制数 表达式为:B = 如:(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-2 X进制要点:X为基数,逢X进1,Xi为权重。(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,15 B:0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 H: 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 D 2、十 → X 即:A十进制 = B X进制 令整数相等,即得:A整数 =(BN-1·XN-1 + … + B1·X1 )+ B0·X0 此式一次除以X可得余数B0,再次除以X可得B1,…,如此直至得到BN-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 B 2 | 2 5 · 2 x 0.375 · 1 2 1 x 0.750 0 6 0 x 1.50 1 3 0 x 1.00 1 1 1 0 0 1 十 → 八:346.152 D = 532.1157 Q (“四舍五入”改为“到半进一”) 8 | 3 4 6 · 8 x 0.152 · 4 3 2 x 1.216 1 5 3 x 1.728 1 0 5 x 5.824 5 x 6.592 6 x 4.736 4 …… 3、二 十六 ,二 八 (简捷方法) 方法:四合一,一分四;三合一,一分三。 自小数点开始:←·→ 如: 二 → 十六:1011011.011001 B = 0101 1011.0110 0100B = 5B.64 H 十六 → 二:3A.5D H = 0011 1010.0101 1101 B 二 → 八: 1011011.011001 B = 001 011 011.011 001 B = 133.31 Q 八 → 二:46.15 Q = 100 110.001 101 B 三、数的运算 1、算术运算 加减乘除 如: 00110110 10011011 11 0011 + 01000111 - 01010110 ×10 011/ 1010 01111101 01000101 00 011 + 11 100 110 011 10 2、逻辑运算 与或异非 如: 01110110 10010011 10000011 AND 01000111 OR 01010010 XOR 01010010 NOT 10010011 01000110 11010011 11010001 01101100 算法: 有0得0 有1得1 相同得0 每位取反 常用于:按位清0 按位置1 整体清0 整体取反 四、BCD和ASCII 1、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| = Xn-2…X1 X0, 则 [X]原 = 0 Xn-2…X1 X0, 当X≥0 [X]原 = 1 Xn-2…X1 X0, 当X≤0 如:X1 = +1001010 则[X1]原 = 01001010 X2 = -1001010 则[X2]原 = 11001010 原码真值范围:[1 1…1,0 1…1] , 即:[最小,最大] 8位原码的真值范围:[1 1111111,0 1111111],即:-127 ~ +127 2、补码 (和) 同余概念: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 =-Xn-2…X1 X0, (X<0), 则 [X]原 = 2n-1 + Xn-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]补 = Yn-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 ② 约定小数点在最低数值位之后,则为纯整数。 格式:1位符号位,n位数值位· (原码) 真值范围:[-(2n-1),+(2n-1],即:[-01…1,+01…1 ] 绝对值:最大值为2n-1,最小值为1 如:纯整数定点数01001111B,真值为+01001111B 纯整数定点数11010000B,真值为-01010000B 上溢:计算结果的绝对值大于定点数最大绝对值。 下溢:计算结果的绝对值小于定点数最小绝对值。 实际数并非都是纯整数或纯小数,因此运算时需选择“比例因子”,以化成纯整数或纯小数,并要防止结果“上溢”或“下溢”。 2、浮点数:由阶码和尾数表示(小数点浮动)。(特点:格式复杂、真值范围大) 其中,阶码是纯整数,尾数是纯小数。E和F可用原码或补码。真值小数点的实际位置由阶符和阶码决定,因此是浮动的。 对应真值:N = F×2 E = ±d×2 ±P 真值范围:[-(1-2-n)· ,+(1-2-n)·] (范围远大于定点数) 绝对值:最大值为(1-2-n)·,最小值为2-n· 规格化浮点数:尾数(绝对值)首位为1的浮点数。(这样有效位数最多) 比较:0.1110011B×24 和0.0001110B×27 ,显然前者有效位数多。 例:设X = -13.5625,请用规格化浮点数表示(假定E用8位原码,F用16位补码)。 解:X = -13.5625 = -1101.1001B = (-0.11011001B)×2 +4 E = +4 = 00000100B (8位原码,纯整数) F = -0.11011001B = -0.110 1100 1000 0000 B (扩至16位) = 10010011 10000000 B (16位补码,纯小数) 故X的规格化浮点数为:00000100 10010011 10000000B *另外,若F用补码,则有如下形式: 正数:+0.1* … *, F=01* … * ; ( +0.5≤X<+1 ) 负数:-0.1* … *, F=10x … x ; (-1<X<-0.5 ) 如:(+0.1010011B)补码 = 01010011B (-0.1010011B)补码 = 10101101B 显然,首位可省去,符号仍明确,但尾数可多一位(精度更高)。 浮点数在加减之前,先要对阶(即对齐小数点)。 对阶规则:阶码小的尾数右移(每右移1位,阶码加1),直至两数阶码相等为止。 * 计算机中的数串可代表:有符号数、无符号数、BCD、ASCII、原码、补码、定点数、浮点数、指令代码等。究竟是何含义,由编程者约定。 看作无符号数,加法时可能有进位,减法时可能有借位。进位或借位是结果的一部分。 看作有符号数,进位或借位不是结果,但可用于判断结果是否溢出。 不管是无符号数运算还是有符号数运算,计算机都会把进位或借位情况保存在CF,溢出标志保存在OF,供编程者使用。 本章小结 ◆ 十、二、十六进制数的表示方法和相互转换 ◆ 二进制数的算术运算和逻辑运算规则 ◆ BCD码的表示和运算规则,ASCII的表示及校验设置 ◆ 有符号数的原码、补码表示法,补码运算规则及溢出判别 ◆ 定点数、浮点数的表示及含义 习题一 1、十进制 → 二进制:73.8125 = 2、十进制 → 十六进制:299.34375 = 3、二进制 → 十进制:10010010.001B = 4、十六进制→ 十进制:8F.7H = 5、已知:a = 1011B, b = 11001B, c = 100110B, 用二进制完成下列算术运算,并用十进制运算检查结果: (1) a+b; (2) c-a-b; (3) a×b; (4) c/a 。 6、已知:a = 00111000B, b = 11000111B, 试求以下逻辑运算结果: (1) a AND b ; (2) a OR b ; (3) a XOR b ; (4) NOT a 。 7、写出下列各数的8位原码和补码: (1) +1010101B; (2) -1010101B; (3) +1111111B; (4) -1111111B; (5) +1000000B; (6) -1000000B; (7) +34 ; (8) -69 。 8、对下列8位补码分别进行a+b和a-b运算,并判断结果是否溢出: (1) a = 37H, b = 57H; (2) a =0B7H, b =0D7H ; (3) a =0F7H, b =0D7H; (4) a = 37H, b =0C7H 。 9、将下列十进制数用BCD表示,并用加6修正法求运算结果: (1) 38+42; (2) 56+77; (3) 99+88; (4) 34+69 。 10、将下列字符串用ASCII表示(以十六进制形式): (1) SAM JONES; (2) -75.61 。 11、用规格化浮点数表示(设阶为4位原码,尾为8位补码):-3.125 = - 8 -
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服