微机原理与技术基础_第2章

上传人:xmg****18 文档编号:117164809 上传时间:2019-11-18 格式:PPT 页数:72 大小:1.37MB
返回 下载 相关 举报
微机原理与技术基础_第2章_第1页
第1页 / 共72页
微机原理与技术基础_第2章_第2页
第2页 / 共72页
微机原理与技术基础_第2章_第3页
第3页 / 共72页
微机原理与技术基础_第2章_第4页
第4页 / 共72页
微机原理与技术基础_第2章_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《微机原理与技术基础_第2章》由会员分享,可在线阅读,更多相关《微机原理与技术基础_第2章(72页珍藏版)》请在金锄头文库上搜索。

1、第2章 计算机中的数制和编码 第2章 计算机中的数制和编码 2.1 无符号数的表示及运算 2.2 带符号数的表示及运算 2.3 信息的编码 2.4 数的定点与浮点表示法 第2章 计算机中的数制和编码 2.1 无符号数的表示及运算 2.1.1 无符号数的表示方法 1. 十进制数的表示方法 十进制计数法的特点是: 逢十进一; 使用10个数字符号(0 9)的不同组合来表示一个十进制数 以后缀D或d表示十进制数(Decimal),但该后缀可以省 略 第2章 计算机中的数制和编码 任何一个十进制数可表示为: 式中:m表示小数位的位数,n表示整数位的位数,Di为第i位 上的数符(可以是09十个数字符号中的

2、任一个)。 例2.1 138.5(D)= 第2章 计算机中的数制和编码 2. 二进制数的表示方法 二进制计数法的特点是: 逢二进一; 使用2个数字符号(0,1)的不同组合来表示一个二进制数; 以后缀B或b表示二进制数(Binary)。 任何一个二进制数可表示为: 式中:m为小数位的位数,n为整数位的位数,Bi为第i位上的数 符(0或1)。 例2.2 1101.11B= 第2章 计算机中的数制和编码 3. 十六进制数的表示法 十六进制计数法的特点是: 逢十六进一; 使用16个数字符号(09,A,B,C,D,E,F)的不同组合来表示 一个十六进制数,其中AF 依次表示1015; 以后缀H或h表示十

3、六进制数(Hexadecimal)。 第2章 计算机中的数制和编码 任何一个十六进制数可表示为: 式中:m为小数位的位数,n为整数位的位数,Hi为第i位上的数 符(可以是0,1,,9,A,B,C,D,E,F十六个数字符号中的任一个 )。 例2.3 0E5AD.BFH = 第2章 计算机中的数制和编码 一般来说,对于基数为的任一数可用多项式表示为: 式中:X为基数,表示X进制;i为位序号;m为小数部分位数 ;n为整数部分的位数;ki为第i位上的数值,可以为0,1,2,X- 1共X个数字符号中任一个;Xi为第i位的权。 第2章 计算机中的数制和编码 2.1.2 各种数制的相互转换 1任意进制数转换

4、为十进制数 二进制、十六进制以至任意进制数转换为十进制数的方法 很简单,只要按权展开(即该位的数值乘于该位的权)求和即 可。 第2章 计算机中的数制和编码 2. 十进制数转换成二进制数 1)整数部分的转换 除以基数(2)取余数,先得到低位(B0)后为高位。 该方法也适用于将十进制整数转换为八进制整数(基数为8) 、十六进制整数(基数为16)以至其它任何进制整数。 第2章 计算机中的数制和编码 2) 小数部分的转换 小数部分乘以基数(2)取整数(0或1),先得到的为高位( B-1)后为低位。 该方法也适用于将十进制小数转换为八进制小数(基数为8) 、十六进制小数(基数为16)以至其它任何进制小数

5、。 第2章 计算机中的数制和编码 例2.4 将13.75转换为二进制数。 分别将整数和小数部分进行转换: 整数部分:13=1101B 小数部分:0.75=0.11B 因此,13.75=1101.11B 第2章 计算机中的数制和编码 例2.5 将28.75转换为十六进制数 整数部分:28=1CH 小数部分:,B-1=CH,小数部分已为0,停止计算。 因此,28.75=1C.CH 第2章 计算机中的数制和编码 3二进制数与十六进制数之间的转换 因为24=16,即可用四位二进制数表示一位十六进制数,所以 可得到如下所述的二进制数与十六进制数之间的转换方法。 将二进制数转换为十六进制数的方法:以小数点

6、为界,向左 (整数部分)每四位为一组,高位不足4位时补0;向右(小数部 分)每四位为一组,低位不足4位时补0。然后分别用一个16进制 数表示每一组中的4位二进制数。 将十六进制数转换为二进制数的方法:直接将每一位十六进 制数写成其对应的四位二进制数。 第2章 计算机中的数制和编码 例2.6 1101110.01011B =0110,1110.0101,1000B =6E.58H 2F.1BH=10 1111.0001 1011B 第2章 计算机中的数制和编码 2.1.3 二进制数的运算 1. 二进制数的算术运算 (1) 加: 0+0=0 0+1=1 1+0=1 1+1=0(进1) (2) 减:

7、 0-0=0 1-1=0 1-0=1 0-1=1(借位) (3) 乘: 00=0 01=0 10=0 11=1 (4) 除: 二进制除法是乘法的逆运算。 第2章 计算机中的数制和编码 例 2.7 A=11110000B, B=00110101B,求 解 第2章 计算机中的数制和编码 2. 二进制数的逻辑运算 (1) “与“运算(AND). “与”运算又称逻辑乘,可用符号“”或“”表示。运算规则如 下:00=0 01=0 10=0 11=1 可以看出,只有当两个变量均为“1”时,“与”的结果才为 “1”。 第2章 计算机中的数制和编码 (2) “或”运算(OR) “或”运算又称逻辑加,可用符号“

8、”或“+”表示。运算规则 如下: 00=0 01=1 10=1 11=1 可以看出,两个变量只要有一个为“1”,“或”的结果就为 “1”。 第2章 计算机中的数制和编码 (3) “非”运算(NOT) 变量的“非”运算结果用表示。逻辑“非”运算规则如下: (4) “异或”运算(XOR) “异或”运算可用符号“ ”表示。运算规则如下: 可以看出,两变量只要不同,“异或”运算的结果就为“1”。 第2章 计算机中的数制和编码 例 2.7 A=11110101B, B=00110000B,求 解 第2章 计算机中的数制和编码 2.2 带符号数的表示及运算 2.2.1 机器数与真值 无符号数与带符号数 如

9、何表示带符号的二进制数? 对于一个字节型二进制数来说,D7位为符号位,D6D0位为数 值位。在符号位中,规定用“0”表示正,“1”表示负,而数值位 表示该数的数值大小。 把一个数及其符号位在机器中的一组二进制数表示形式, 称为“机器数”。机器数所表示的值称为该机器数的“真值”。 D7D6D1D0 第2章 计算机中的数制和编码 2.2.2 机器数的表示方法 1. 原码 在原码表示法中,最高位为符号位(正数为0,负数为1) ,其余数字位表示数的绝对值。 第2章 计算机中的数制和编码 例如,当机器字长n=8时, +0原=00000000B -0原=10000000B +8原=00001000B-8原

10、=10001000B +127原=01111111B-127原=11111111B 当机器字长n=16时, +0原=0000000000000000B +8原=0000000000001000B -0原=1000000000000000B -8原=1000000000001000B +32767原=0111111111111111B -32767原=1111111111111111B 第2章 计算机中的数制和编码 可以看出,原码表示数的范围是-(2n-1-1) (2n-1-1) 。 8位二进制原码表示数的范围为-127+127, 16位二进制原码表示数的范围为-32767+32767; “0”

11、的原码有两种表示法:00000000表示+0, 10000000表示-0。 第2章 计算机中的数制和编码 原码表示法简单直观,且与真值的转换很方便, 算术运算电路很复杂。因此,计算机中通常使用补码 进行加减运算,这样就引入了补码表示法。 第2章 计算机中的数制和编码 2. 反码 设数x的反码记作x反,如机器字长为n,则反码定义如下: 正数的反码与其原码相同。例如,当机器字长n=8时: +0反=+0原=00000000B +127反=+127原=01111111B 当机器字长n=16时: +8反=+8原=0000000000001000B +127反=+127原=0000000001111111

12、B 第2章 计算机中的数制和编码 负数的反码是在原码基础上,符号位不变(仍为1),数值位 按位取反。例如,当机器字长n=8时: -0反=(28-1)-0=11111111B -127反=(28-1)-127=10000000B 反码表示数的范围是-(2n-1-1) (2n-1-1) 。8位二进制反码表 示数的范围为-127+127,16位二进制反码表示数的范围为- 32767+32767;“0”的反码有两种表示法:00000000表示+0, 11111111表示-0。 第2章 计算机中的数制和编码 3. 补码 设数x的补码记作x补,如机器字长为n,则补码定 义如下: 第2章 计算机中的数制和编

13、码 正数的补码与其原码、反码相同。 例如,当机器字长n=8时: +8补=+8反=+8原=00001000B +127补=+127反=+127原=01111111B 当机器字长n=16时: +8补=+8反=+8原=0000000000001000B +127补=+127反=+127原 =0000000001111111B 第2章 计算机中的数制和编码 负数的补码(三种方法) 例如,当机器字长n=8时: -8原=10001000B-127原=11111111B -8反=11110111B-127反=10000000B -8补=28-8=11111000B-127补=28-127=10000001B

14、 当机器字长n=16时: -8补=216-8=11111111 11111000B -127补=216-127=11111111 10000001B 第2章 计算机中的数制和编码 可以看出, 补码表示数的范围是-2n-1 (2n-1-1) 。 8位二进制补码表示数的范围为-128 +127, 16位二进制补码表示数的范围为-32768 +32767。 第2章 计算机中的数制和编码 表2.1 8位二进制数的原码、反码和补码表 带 符 号 数 原码反码补码 0000 0000 0000 0001 0000 0010 0111 1110 0111 1111 1000 0000 1000 0001 1

15、111 1101 1111 1110 1111 1111 0 1 2 126 127 128 129 253 254 255 +0 +1 +2 +126 +127 -0 -1 -125 -126 -127 +0 +1 +2 +126 +127 -127 -126 -2 -1 -0 +0 +1 +2 +126 +127 -128 -127 -3 -2 -1 二进制数 无符号 十进制数 第2章 计算机中的数制和编码 2.2.3 真值与机器数之间的转换 一原码转换为真值 根据原码定义,将原码数值位各位按权展开求和,由符号 位决定数的正负即可由原码求出真值。 例2.8 已知x原=00011111B,y原=10011101B,求x和y x=+(026+025+124+123+122+121+120)=31 y=-(026+025+124+123+122+021+120)=-29 第2章 计算机中的数制和编码 2. 反码转换为真值 要求反码的真值,只要先求出反码对应的原码,再按上述原 码转换为真值的方法即可求出其真值。 正数的原码是反码本身。负数的原码可在反码基础上,符号 位仍为1不变,数值位按位取反。 例2.9 已知x反=00001111B,y反=11100101B,求x和y 解 x原= x反=000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号