1、,微型计算机原理教师:马光喜 手机:13608518510 邮箱:,教学时数:54学时 实验学时:18学时 平时成绩:40%(作业、考勤、纪律) 期末成绩:60%(闭卷考试),第1章 数据在计算机中的运算及表示形式,本章主要内容,(1) 进位记数制 (2)不同进位制数之间的转换 (3) 二进制数的算术运算和逻辑运算 (4)数据在计算机中的表示形式 (5) 二进制信息的计量单位,1.1 进位记数制,计算机中全部信息(包括指令和数据)都是采用二进制数,为了书写方便,又经常采用十六进制。人们在日常生活中又广泛采用十进制。 二进制、十六进制、十进制都是进位记数制。,1.1.1 进位记数制及其基数和权,
2、进位记数制:用一组固定的数字符号和特定的规则表示数的方法。 基数和权 在进位记数制中,一种进位制所允许选用的基本数字符号的个数称为这种进位制的基数。 同一个数字符号处在不同的数位时,它所代表的数值是不同的,每个数字符号所代表的数值等于它本身乘以一个与它所在数位对应的常数,这个常数叫做位权,简称权(weight)。,不同进位制的基数不同 十进制:基数10,数字符号09二进制:基数2,数值符号0,1 同一进制,不同数位其权值不同。,1.1.2 几种常用的进位记数制,1. 十进制 任何一个十进制数,都可以用一个多项式来表示:等式右边的表示形式,称为十进制数的多项式表示法,也叫按权展开式; 等号左边的
3、形式,称为十进制的位置记数法。位置记数法是一种与位置有关的表示方法,同一个数字符号处于不同的数位时,所代表的数值不同,即其权值不同。,2. 二进制 二进制数的基数为2,即它所用的数字符号个数只有两个(“0”和“1”)。它的计数进位规则为“逢二进一”。二进制数只有两种数字符号,因而便于数字系统与电 子计算机内部的表示与存储。它的另一个优点是运算规则的简便性,而运算规则的简单,必然导致运算电路的简单以及相关控制的简化 。,3. 八进制八进制数的基数R8,每位可能取八个不同的数字符号07中的任何一个,进位规则是“逢八进一”。1位八进制对应3位二进制 八进制: 0, 1, 2, 3, 4, 5, 6,
4、 7 二进制:000,001,010,011,100,101,110,111,4. 十六进制 十六进制数的基数R16,每位用十六个数字符号0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F中的一个表示,进位规则是“逢十六进一”。 与二进制转换时候,其每位对应4位二进制数。在编程时,为了书写方便,常用十六进制表示。,1.2 不同进位制数之间的转换,1.2.1 二进制数转换为十进制数 按权展开,例如 (101015.101)2 (252321202-12-3)10(328210.50.125)10(43.625)10 同样的方法也可将八进制数转换为十进制数。这种用以实现数制转换的方法,
5、称为多项式替代法。,1.2.2 十进制数转换为二进制数,1. 十进制整数转换为二进制整数除2取余,例如十进制数29的转换。,2 9,2,1 4,余数1 (B0 ),7,2,2,3,2,1,2,0,余数0 (B1 ),余数1 (B2 ),余数1 (B3 ),余数1 (B4 ), 29D=11101B,采用“除8取余”或“除16取余”的方法,即可将一个十进制整数转换为八进制整数或十六进制整数。这种数制转换的方法称为基数除法或“除基取余”法。可概括为:“除基取余,直至商为0,注意确定高、低位”。,2. 十进制小数转换为二进制小数 乘2取整,例 把0.625转换成二进制数把0.625乘2取整,0.62
6、5 2 1.250 B-1=1,0.25 2 0.50 B-2=0,0. 5 2 1.0 B-3=1, 0.625=0.101B,在十进制小数转换成二进制小数时,整个计算过程可能无限地进行下去,这时,一般考虑到计算机实际字长的限制,只取有限位数的近似值就可以了。 上述这种数制转换方法称为基数乘法或“乘基取整”法。可概括如下:“乘基取整,注意确定高、低位及有效位数。” 如果一个数既有整数部分又有小数部分,则用前述的“除基取余”及“乘基取整” 结合求解。,计算机中常用的进位计数制 计数制 基数 数 码 进位关系 二进制 2 0、1 逢二进一 八进制 8 0、1、2、3、4、5、6、7 逢八进一 十
7、进制 10 0、1、2、3、4、5、6、7、8、9 逢十进一 十六进制 16 0、1、2、3、4、5、6、7、8、9A、B、C、D、E、F 逢十六进一 计数制的书写规则 (1)在数字后面加写相应的英文字母作为标识。如:二进制数的100可写成100B十六进制数100可写成100H (2)在括号外面加数字下标。如:(1011)2 表示二进制数的1011(2DF2)16 表示十六进制数的2DF2,数值转换重点要掌握以下内容: 1、进制:二、十、十六 2、转换: 十转二:由二进制数的位权决定 二进制位权是:1、 2、 4、 8 、16、32、64、128、256、512、1024、2048、4096、
8、8192、16384、32768、65536 例:187转为二进制为1011 1011 187-128=59 59-64=-5 59-32=27 27-16=11,4位2进制 与10进制、 16进制 的关系 2进制 10进制 16进制 2进制 10进制 16进制 0000 0 0 1000 8 8 0001 1 1 1001 9 9 0010 2 2 1010 10 A 0011 3 3 1011 11 B 0100 4 4 1100 12 C 0101 5 5 1101 13 D 0110 6 6 1110 14 E 0111 7 7 1111 15 F,二与十六进制的关系: 4位2进制等于
9、1位16进制 例:110 1101 0010B= 6D2H 例:3AB4H=0011 1010 1011 0100 B 十转十六:十二十六 十六转十:十六二十,十六进制数的运算 (1)十六进制加法 十六进制数的运算按照逢十六进一的规则进行,即当两个一位数之和S小于16时,与十进制数同样处理,如两个一位数之和S16时,则应该用S-16及进位1来取代S。 十六进制的加法 15C3H 3D45H 5308H,十六进制数的减法 十六进制数的减法与十进制数类似,够减时可以直接相减,不够减时服从向高位借1为16的规则。 十六进制的减法示例 3DA6H 0FC3H 2DE3H,1.3 二进制数的算术运算与逻
10、辑运算,1.3.1 二进制数的算术运算 加法运算规则:逢二进一 减法运算规则:借一当二 乘法运算规则:000, 010 , 100 ,111例如:1101x1010=1101110二进制的乘法可以归结为:“加”和“移位”。 除法运算:乘法的逆运算。以二进制的乘法及减法规则实现。,1.3.2 二进制数的逻辑运算,逻辑运算与算术运算有着本质上的差别,它是按位进行的,其运算的对象及运算结果只能是0和1这样的逻辑量。 这里的0和1并不具有数值大小的意义,而仅仅具有如“真”和“假”、“是”和“非”这样的逻辑意义。 二进制数的逻辑运算实际上是将二进制数的每一位都看成逻辑量时进行的运算。 基本的逻辑运算有逻
11、辑“或”、逻辑“与”和逻辑“非”三种,常用的还有逻辑“异或”运算。,(1) “或”运算(逻辑加,逻辑和;运算符号+,V),(2) “与”运算(逻辑乘,逻辑积; 运算符号 ),(3) “非”运算(运算符号 , ),(4) “异或”运算,“异或”又称模2加,其运算规则是:0和任何数相“异或”该数不变,1和任何数相“异或”该数变反。可简述为“相同得0,不同得1”。其运算符号为“ ”。如下所示:0 00 0 11 1 01 1 10 例 0110 10011111 “异或”运算常用于将一个已知二进制数的某些位变反而其余各位不变。例如,欲使10101100的最低两位变反而其余各位不变,就可以用00000
12、011与之进行“异或”运算来完现。即:1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 11 0 1 0 1 1 1 1,1.3.3 移位运算,1.逻辑移位 逻辑左移:将操作数的所有位同时左移,最高位移出原操作数之外,最低位补0。逻辑左移一位相当于无符号数乘2。例如,将01100101逻辑左移一位后变成11001010,相当于(101)102202 。 逻辑右移:将操作数的所有位同时右移,最低位移出原操作数之外,最高位补0。逻辑右移一位相当于将无符号数除以2。例如,将10010100逻辑右移一位后变成01001010,相当于148274 。,循环左移:将操作数的所有位同时左移,并将移
13、出的最高位送到最低位。循环左移的结果不会丢失被移动的数据位。例如,将10010100循环左移一位后变成00101001。 循环右移:将操作数的所有位同时右移,并将移出的最低位送到最高位。它也不会丢失被移动的数据位。例如,将10010100循环右移一位后变成01001010。,2. 算术移位算术移位是把操作数当作带符号数进行移位,所以在 算术移位中,必须保持符号位不变。否则将发生溢出。与逻辑移位类似,算术移位可分为算术左移、算术右 移、循环左移和循环右移。循环左移和循环右移的操作 与前述逻辑移位时的情况相同,都是不丢失移出原操作 数的位,而将其返回到操作数的另一端。,1.4 数据在计算机中的表示
14、形式,电子计算机实质上是一个二进制的数字系统,在机器 内部,二进制数总是存放在由具有两种相反状态的存储 元件构成的寄存器或存储单元中,即二进制数码0和1是 由存储元件的两种相反状态来表示的。另外,对于数的符号(正号“”和负号“”)也只能 用这两种相反的状态来区别。也就是说,只能用0或1来 表示。,1.4.1 机器数与真值,例1. 正二进制数N1=+1011001,在计算机中可表示为:,符号位,数值位,例2. 负二进制数N1=-1011001,在计算机中可表示为:,符号位,数值位,定义:一个数(连同符号)在机器中加以数码化后的表示形式, 称为机器数;而把机器数所代表的实际值称为机器数的真值。,机
15、器数的符号在算术运算中,数据是有正有负的,将这类数据称为带符号数。为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。 机器数中小数点的位置在机器中,小数点的位置通常有两种约定:一种规定小数点的位置固定不变,这时的机器数称为“定点数”。另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。,1.4.2 常见的机器数表示形式,1. 原码 约定数码序列中的最高位为符号位,符号位为0表示该数为正数,为1表示该数为负数;其余有效数值部分则用二进制的绝对值表示。 例如: 真值x x原0.1001 0.10010.1001 1.10011001 0100
16、11001 11001 定点数又有定点小数和定点整数之分,下面分别给出定点小数和定点整数的原码定义。, 若定点小数原码序列为x0. x1x2 xn ,则 x原= x 0x11-x -1x0 式中x代表真值,x原为原码表示的机器数。 例如:x0.1011,则x原 =0.1011x0.1011,则x原 =1-(-0.1011)=1+0.1011=1.1011 若定点整数原码序列为x0 x1 x2 xn ,则x原= x 0x2n2n - x -2nx0,例如:x1011,则x原=01011x1011,则x原=24 (1011)=10000+1011=11011 对于原码表示,具有如下特点: 原码表示
17、中,真值0有两种表示形式。 以定点小数的原码表示为例:+0原=0.000 -0原=1-(-0.000)=1+0.000=1.000 在原码表示中,符号位不是数值的一部分,它们仅是人为约定(“0为正,1为负”),所以符号位在运算过程中需要单独处理,不能当作数值的一部分直接参与运算。,带符号数的原码、反码、补码表示 1原码:正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。 当机器字长为8位二进制数时:X1011011 X原码01011011Y1011011 Y原码110110111原码00000001 1原码10000001127原码0
18、1111111 127原码11111111原码表示的整数范围是:(2n-11)(2n-11),其中n为机器字长。则:8位二进制原码表示的整数范围是12712716位二进制原码表示的整数范围是3276732767,原码表示法也称为符号数值表示法,X原=符号位+|X|。符号位用0-正数,符号位用1-负数,其余位表示数的大小。 例:X=+0.1011 X原=01011X=-0.1011 X原=11011 缺点:运算(加、减法)复杂,低效 0有两个表示 +0: 00000 0: 10000,原码表示简单直观,而且容易由其真值求得,相互转换也较方便。但计算机在用原码做加减运算时比较麻烦。 比如当两个数相
19、加时,如果是同号,则数值相加,符号不变;如果是异号,则数值部分实际上是相减,此时必须比较两个数绝对值的大小,才能确定谁减谁,并要确定结果的符号。 这在手工计算时是容易解决的,但在计算机中,为了判断同号还是异号,比较绝对值的大小,就要增加机器的硬件设备,并增加机器的运行时间。,2. 补码 定点小数补码定义如下: 若定点小数的补码序列为X0 . X1Xn ,则式中,x 代表真值, 为补码表示的机器数。 若定点整数的补码序列为 ,则,例如:x=+0.1011, 则x补=0.1011x=-0.1011, 则x补=2+(-0.1011)=10.0000-0.1011=1.0101对于补码表示,具有如下特
20、点: 与原码表示不同,补码的符号位是数值的一部分,因此在补码运算中符号位像数值位一样直接参加运算。 在补码表示中,真值0只有一种表示,即000。,由原码转换为补码的规律,当x0时,原码与补码的表示形式完全相同; 当x0时,从原码转换为补码的变化规律为:“符号位保持不变(仍为1),其他各位求反,然后末位加1”,简称“求反加1”。 例如:x0.1010,则x原0.1010,x补0.1010x0.1010,则x原1.1010,x补1.0110 容易看出,当x0时,若把x补除符号位外“求反加1”,即可得到x原。也就是说,对一个补码表示的数,再次求补,可得该数的原码。,3补码正数的补码与其原码相同,负数
21、的补码为其反码在最低位加1(数值位按位变反,末位加一)。 (1)X1011011 (2) Y1011011 (1)根据定义有: X原码01011011X补码01011011 (2) 根据定义有: Y原码11011011 Y反码10100100 Y补码10100101补码表示的整数范围是2n-1(2n-11),其中n为机器字长。则:8位二进制补码表示的整数范围是12812716位二进制补码表示的整数范围是3276832767当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。,补码(twos complement): 即X0时,符号位为1,数值位取反后再加1。 例如:X=+0.1011
22、X补=0.1011X=-0.1011 X补=1.0101 补码的特点: 1、数值0的补码表示形式是唯一的,即:+0补=-0补=0.0000,2、补码表示的范围:n=8位: 纯小数:0.11111111.0000000(-1) 纯整数:01111111(+127)-10000000(-128)n=16位纯整数: : 0111 1111 1111 11111000 0000 0000 0000(+32767 - -32768),补码的特殊数:以8位补码表示-128为例-128=-10000000(加负号共9位) 求补:先不管负号,数值10000000的补码为1 0 0 0 0 0 0 0 这里的1
23、是数值,但它出现在最高位上。最高位是符号位,由于该数是负数,也应该为1这样负号1与数值1正好重叠表示在最高位。所以可以用8位表示-128。利用这一特性,补码的纯小数可以表示-1,但它是纯小数。,补码与真值之间的转换,正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。 X补码01011001B,X补码11011001B,分别求其真值X。 (1)X补码代表的数是正数,其真值:X1011001B(126124123120)(641681)(89)D (2)X补码代表的数是负数,则真值:X(1011001求反1)B(0100110
24、1)B(0100111)B(125122121120)(32421)(39)D,求补码的简便方法: 1、凡是末位=1,前面的位按位变反,末位不变。 例如:-1100111的补码是10011001 2、凡是某位=1,后面的位为全0,则该位前面的位按位变反,该位及以后的位不变。 例:-1101000的补码是10011000,注意: 正数的原码、反码、补码、真值均相同 负数的原码、反码、补码、真值各不相同。 补码可将减运算自动转换为加运算,可对正负数不用对符号判断直接运算,大大简化了机器的运算器设计。 补码做的是有模运算,超过最大模的模值自然丢失,但要注意与溢出的区别。 模:一个N位数的最大表示量
25、例:2位十进制可表示0099,模为100,例:计数窗(3位-模值=1000)000 进1 001 退1 999(-1) 进2 002 退2 998(-2) 进3 003 退3 997(-3) 计算:先进3再退2 000+003=003-002=001(用了减运算) 000+003=003+998=1 001=001 1-1000,运算中超过最大模,自然丢失,定点补码加法运算溢出判断 补码加:X补+ Y补= X+Y补 补码减:X补- Y补= X补+- Y补 =X补+- Y 补=X-Y补 - Y 补-求机器负数,方法:连同符号位一起按位变反,末位加一,不论正负 溢出:超过数值位最大允许表示的范围。
26、 现象:由于溢出产生的进借位会破坏正确的符号,出现正数+正数,结果为负数;负数+负数,结果为正数。,例如:01111111 +127+ 00000001 + (+1)10000000 (-128) 溢出产生: 正数+负数或负数+正数: 无溢出 正数+正数,结果为正数: 无溢出 负数+负数,结果为负数: 无溢出 正数+正数,结果为负数: 有溢出 负数+负数,结果为正数: 有溢出,例 设X=+01010,Y=+00101求X+Y补 =? 解:第一步-求X补、Y补X补=01010 Y补= 00101第二步-计算X+Y补 01010+ 0010101111X+Y补= 01111,例:设X=+1010,
27、Y= -0101求X+Y补 =? 解:第一步-求X补、Y补X补=01010 Y补= 11011第二步-计算X+Y补 01010+ 1101100101X+Y补= 00101,补码的加、减法运算 补码的加法规则是: XY补=X补Y补 补码的减法规则是: XY补=X补Y补 其中的Y补只要对Y补求补就可得到。,机器字长假定为8位机器字长假定为8位,完成下列补码加法运算。 十进制 二进制 23 00010111 36 00100100 59 00111011,36 00100100,(23) 11101001 13 (进位1)00001101, 23 00010111(36) 1101110013 1
28、111001123 11101001(36) 1101110059 (进位1)11000101,36 00100100,机器字长假定为8位,完成下列补码减法运算.十进制 补码 二进制 23 00010111 0001011136 00100100 1101110013 11110011, 36 00100100 00100100(23) 11101001 0001011159 00111011, 23 11101001 11101001(36) 00100100 1101110059 (进位为1)11000101 23 11101001 11101001(36) 11011100 001001
29、0013 (进位为1) 00001101,3. 反码 定点小数反码定义如下: 若定点小数的反码序列为X0 . X1Xn ,则式中,x代表真值,x反为补码表示的机器数。 若定点整数的补码序列为 ,则,反码对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。 当机器字长为8位二进制数时:X1011011 X原码01011011 X反码01011011Y1011011 Y原码11011011 Y反码101001001反码00000001 1反码11111110127反码01111111 127反码10000000负数的反码与负数的原码有很大的区别,反码通常用
30、作求补码过程中的中间形式。反码表示的整数范围与原码相同。,反码与原码相比,两者的符号位一样。即对于正数,符号位为0;对于负数,符号位为1。在数值部分,对于正数,反码的数值部分与原码按位相同;对于负数,反码的数值部分是原码的按位求反。0的反码有两种表示,分别为全0或者全1。由原码表示容易得到相应的反码表示。例如:x0.1001,x原0.1001,x反0.1001x0.1001,x原1.1001,x反1.0110,4. 原码、反码、补码之间的转换转换规则如下图所示:,5. 移码表示法设定点整数移码形式为 ,则其中 式中x为真值,x移为其移码。 把真值x在数轴上向正方向平移 单位,移码由此得名。又叫
31、增码。,移码特点:1)移码是把真值映射到一个正数域,因此移码的大小可以直观地反映真值的大小。无论是正数还是负数,用移码表示后,可以按无符号数比较大小。2)移码的数值部分与相应的补码各位相同,而符号位与补码相反。在移码中符号位为0表示真值为负数,符号位为1表示真值为正数。3)移码为全0时,它对应的真值最小。4)真值0在移码中的表示是唯一的,即:,6.机器数形式的比较和小结, 原码、补码、反码和移码均是计算机能识别的机器数,机器数与真值不同,它是一个数(连同符号)在计算机中加以数码化后的表示形式。 正数的原码、补码和反码的表示形式相同,负数的原码、补码和反码各有不同的定义,它们的表示形式不同,相互
32、之间可依据特定的规则进行转换。, 四种机器数形式的最高位均为符号位。原码、补码和反码表示中,为0表示正数,为1表示负数;在移码表示中,为0表示负数,为1表示正数。 原码、补码和反码既可用来表示浮点数中的尾数,又可用来表示其阶码;而移码则主要用来表示阶码。 0在补码和移码表示中都是唯一的,0在原码和反码表示中都有两种不同的表示形式。,1.4.3 数的定点表示与浮点表示,1. 定点表示法 定点小数、定点整数 2. 浮点表示法 编码格式:通常由尾数和阶码组成;其中尾数表示有效数字,阶码表示小数点位置。表示如下:其中M是尾数,R是基数(常取2),E是阶码,S是符号位。 在计算机中表示形式为:其中S是符
33、号位,E是阶码,M是尾数。,浮点数的规格化:不丢失有效数字,提高运算精度。1)如果阶码以2为底,则规格化浮点数的尾数M的绝对值应满足: 2)对于原码,M1=1;3)对于补码,正数时,M1=1,负数时M1=0;即“尾数最高位与符号位相反”即为判断浮点数是否为规格化数的标志。,例 将浮点数 转换为规格化表示。解:该数据为负数,符号为为1,尾数的补码为1.1101,由规格化步骤,将尾数左移2位,阶码减2,从而使小数点后第一位为0,规格化后为:,IEEE 754标准:对浮点数的编码格式的标准化,以便于实现不同计算机之间的软件移植。其中的浮点编码有32位、64位和80位三种格式,分别称为短实数(Shor
34、t real)、长实数(Long real)和临时实数(Temporary real)。短实数:其中:S为符号位,E为阶码,M是尾数。,在IEEE754浮点数格式中,符号位S仍然用0表示正数,1表示负数。对于32位格式,阶码为8位,正常数的阶码E的取值范围为1254,偏移值为127; 尾数M可以取任意的23位二进制数值,加上隐含的M0(1)位,可达到24位的运算精度。 阶码E是一个带偏移的无符号整数,从中减去相应的偏移值即为浮点数的实际阶码值。,例 试给出十进制数-0.625的IEEE754单精度数标准代码。 解 先将0.625转换为二进制形式为-0.101,相应的浮点数表示形式为 ,再转换为
35、IEEE 754标准的规格化形式为: 。再由IEEE754单精度数值公式转换,可得到E=126=01111110,所以-0.625的IEEE754单精度标准代码为:S=1;E=01111110,M1M23=01000000000000000000000,例 试给出如下IEEE 754单精度标准代码的十进制数表示S=0,E=10000011,M1M23=10000000000000000000000; 解 S=0,E=10000011B=131D,规格化的尾数为1.1B;由IEEE 754单精度标准的数值公式,可得所求十进制为:,1.4.4 二-十进制编码,用几位二进制码来表示一位十进制数的方法
36、称为十进制数的二进制编码,简称BCD码(Binary Code Decimal)。常见的BCD码有8421码、余3码、格雷码等。平常说到BCD码,通常指的是8421码。,组合BCD码和分离BCD码 组合BCD码(packed BCD):每个字节存放两个十进制数字。例如, (9502)10的组合BCD码格式为:1001 0101 0000 0010 分离BCD码(unpacked BCD):每个字节存放一个十进制数字(占低四位,高4位无关紧要),2018/12/14,微机原理,77,计算机中的数据表示及编码,BCD码,BCD码是一种用4位二进制数字来表示一位十进制数字的编码,也称为二进制编码表示
37、的十进制数(Binary Code Decimal),简称BCD码。最常用的方法是8421BCD码,8,4,2,1分别是4位二进制数的位权值。,2018/12/14,微机原理,78,二进制编码的十进制数(BCD码),用若干二进制数码表示一位十进制数的方法统称BCD码。,例:用4位二进制编码,表示一位十进制数,十进制数 BCD数0 00001 00012 00107 01118 10009 1001,(1) 8421码,用四位二进制数表示每一位十进制数的数位,且编码的权从左至右分别是8、4、2、1, 非压缩BCD, 压缩BCD,(2) 8421码的形式, 非压缩BCD,非压缩BCD码用一个字节表
38、示一位十进制数,一般只用低4位。,十进制数 BCD数0 0000 00001 0000 00012 0000 00109 0000 100110 0000 0001 0000 000027 0000 0010 0000 0111, 压缩BCD,高4位、低4位分别表示一位十进制数。,十进制数 BCD数0 0000 00001 0000 00012 0000 00109 0000 100110 0001 000027 0010 0111,2018/12/14,微机原理,83,计算机中的数据表示及编码,ASCII码,ASCII码是美国国家标准局制订的一套标准化信息交换码 。ASCII 码使用7 位或
39、 8 位二进制数表示 128 或 256 种字符。标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。 扩展 ASCII 码允许将每个字符的第 8 位用于确定附加的 128 个特殊符号字符、外来语字母和图形符号。,ASCII码ASCII码,全称为“美国标准信息交换代码(American Standard Code for Information- Interchange) 。基本ASCII码共有128个,其中控制符32个,数字10个,大写英文字母26个,小写英文字母26个,以及专用符号34个。,ASCII码表,AS
40、CII码特征,每一个ASCII码存放在一个字节中,低7位为有效编码位,最高位可用于校验位或用于ASCII码的扩充。字符大小比较,实际上是比较ASCII码值的大小。,小写字母 大写字母 数字 61H-7Ah 41H-5AH 30H-39H,键盘输入:A5B9$ 回车、换行 A-0100 0001 41H 5-0011 0101 35H B-0100 0010 42H 9-0011 1001 39H $-0010 0100 24H 回车0000 1101 0DH 换行-0000 1010 0AH,2018/12/14,微机原理,88,小型案例实训,案例1数制转换 (1) 将101101.101B、
41、11011.101B、101.01B、375.42O、0ABC.DEH、327H、FFH、3AB.11H转换成十进制数。 101101.101B=125+024+123+122+021+120+12-1+02-2+12-3-= 45.625 11011.101B=124+123+022+121+120+12-1+02-2 +12-3= 27.625 101.01B =122+021+120+02-1+12-2 = 22 + 20 + 2-2= 4 + 1 + 0.25 =5.25 375.42O = 382 + 781 + 580 + 48-1 + 28-2 = 192 +56 + 5 + 0
42、.5 + 0.03 = 253.53 0ABC.DEH=10162+11161+12160+1316-1+1416-2=2560+176+12+0.81+0.05=2748.86 327H=3162+2161+7160=807 FFH=15161+15160=255 3AB.11H=3162+10161+11160+116-1+116-2,2018/12/14,微机原理,89,小型案例实训,案例2码制转换 设X1=+369,X2=-369,X3=-0.369,当用16位二进制数表示一个数时,求X1,X2,X3的原码、反码及补码。 解:X1原=X1反=X1补=0000000101110001B
43、X2原=1000000101110001B X2反=1111111010001110B X2补=X2反+1=111111101000111B X3原=1.010111100111011B X3反=1.101000011000100B X3补=X3反+0.000000000000001B=1.101000011000101B,2018/12/14,微机原理,90,1.6 小型案例实训,案例3补码运算 设X=25DFH,Y=327BH,用补码运算求X+Y,X-Y。 解:X补=0010010111011111B Y补=0011001001111011B -Y补=1100110110000101B X+Y补=X补+Y补=0101100001011010B=585AH X-Y补=X补+-Y补=1111001101100100B X+Y=0101100001011010B=+585AH X-Y=X-Y补补=1000110010011100B=-0C9CH,第1章 作业,