




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 计算机中的数制和编码 第2章 计算机中的数制和编码 2.1 无符号数的表示及运算 2.2 带符号数的表示及运算 2.3 信息的编码 2.4 数的定点与浮点表示法 Date1 第2章 计算机中的数制和编码 2.1 无符号数的表示及运算 2.1.1 无符号数的表示方法 1. 十进制数的表示方法 十进制计数法的特点是: 逢十进一; 使用10个数字符号(0,1,2,9)的不同组合来表示一个 十进制数; 以后缀D或d表示十进制数(Decimal),但该后缀可以省 略。 Date2 第2章 计算机中的数制和编码 任何一个十进制数可表示为: 式中:m表示小数位的位数,n表示整数位的位数,Di为第i位 上的数符(可以是09十个数字符号中的任一个)。 例2.1 138.5(D)= Date3 第2章 计算机中的数制和编码 2. 二进制数的表示方法 二进制计数法的特点是: 逢二进一; 使用2个数字符号(0,1)的不同组合来表示一个二进制数 ; 以后缀B或b表示二进制数(Binary)。 任何一个二进制数可表示为: 式中:m为小数位的位数,n为整数位的位数,Bi为第i位上的数 符(0或1)。 例2.2 1101.11B= Date4 第2章 计算机中的数制和编码 3. 十六进制数的表示法 十六进制计数法的特点是: 逢十六进一; 使用16个数字符号(0,1,2,3,9,A,B,C,D,E,F)的不同组 合来表示一个十六进制数,其中AF 依次表示1015; 以后缀H或h表示十六进制数(Hexadecimal)。 Date5 第2章 计算机中的数制和编码 任何一个十六进制数可表示为: 式中:m为小数位的位数,n为整数位的位数,Hi为第i位上的数 符(可以是0,1,,9,A,B,C,D,E,F十六个数字符号中的任一个 )。 例2.3 0E5AD.BFH = Date6 第2章 计算机中的数制和编码 一般来说,对于基数为的任一数可用多项式表示为: (2.1.4) 式中:X为基数,表示X进制;i为位序号;m为小数部分位数 ;n为整数部分的位数;ki为第i位上的数值,可以为0,1,2,X- 1共X个数字符号中任一个;Xi为第i位的权。 Date7 第2章 计算机中的数制和编码 2.1.2 各种数制的相互转换 1任意进制数转换为十进制数 二进制、十六进制以至任意进制数转换为十进制数的方法 很简单,只要按式2.1.2,2.1.3和2.1.4各位按权展开(即该位的 数值乘于该位的权)求和即可。 Date8 第2章 计算机中的数制和编码 将整数部分不断除以2,记下每次得到 的余数,直到商为零;余数倒排,即最后得到 的余数排在最高位,第一个余数排在最低位。例 如将十进制数13转换成二进制数: 2 1 3 余数 2 6 1 2 3 0 2 1 1 0 1 13D=1101B 2. 十进制数转换成二进制数 1)整数部分的转换(除2取余法) Date9 第2章 计算机中的数制和编码 小数部分转换:乘2取整,顺序排列得到的整 数。例如将0.8125转换成二进制数: 0.8125 整数 2 1 .6250 2 1 .25 2 0 .50 2 1 .00 0.8125D=0.1101B(有时会有转换误差 ,如0.3D) 返回数制转换 2) 小数部分的转换(乘2取整法) Date10 第2章 计算机中的数制和编码 显然,该方法也适用于将十进制整数转换为八进制整数 (基数为8)、十六进制整数(基数为16)以至其它任何进制 整数。 Date11 第2章 计算机中的数制和编码 例2.4 将13.75转换为二进制数。 分别将整数和小数部分进行转换: 整数部分:13=1101B 小数部分:0.75=0.11B 因此,13.75=1101.11B Date12 第2章 计算机中的数制和编码 例2.5 将28.75转换为十六进制数 整数部分:28=1CH 小数部分:0.7516=12.0,B-1=CH,小数部分已为0,停止 计算。 因此,28.75=1C.CH Date13 第2章 计算机中的数制和编码 3二进制数与十六进制数之间的转换 因为24=16,即可用四位二进制数表示一位十六进制数,所以 可得到如下所述的二进制数与十六进制数之间的转换方法。 将二进制数转换为十六进制数的方法:以小数点为界,向左 (整数部分)每四位为一组,高位不足4位时补0;向右(小数部 分)每四位为一组,低位不足4位时补0。然后分别用一个16进制 数表示每一组中的4位二进制数。 将十六进制数转换为二进制数的方法:直接将每一位十六进 制数写成其对应的四位二进制数。 Date14 第2章 计算机中的数制和编码 例2.6 1101110.01011B=0110,1110.0101,1000B=6E.58H 2F.1BH=10 1111.0001 1011B Date15 第2章 计算机中的数制和编码 课堂练习 1、将十进制数218.8125转换为二进制数 和十六进制数。 2、将二进制数10111100.111B转换为十 进制数和十六进制数。 Date16 第2章 计算机中的数制和编码 2.1.3 二进制数的运算 1. 二进制数的算术运算 (1) 加: 0+0=0 0+1=1 1+0=1 1+1=0(进1) (2) 减: 0-0=0 1-1=0 1-0=1 0-1=1(借位) (3) 乘: 00=0 01=0 10=0 11=1 (4) 除: 二进制除法是乘法的逆运算。 Date17 第2章 计算机中的数制和编码 例:完成下列数的加减运算。 1、1101+1011 2、11101110-10111010 3、7A6C+56DF Date18 第2章 计算机中的数制和编码 2. 二进制数的逻辑运算 (1) “与“运算(AND). “与”运算又称逻辑乘,可用 符号“”或“”表示。运算规则如下: 00=0 01=0 10=0 11=1 可以看出,只有当两个变量均为“1”时,“与”的结果才为 “1”。 (2) “或”运算(OR) “或”运算又称逻辑加,可用符号“”或“+”表示。运算规则如 下: 00=0 01=1 10=1 11=1 可以看出,两个变量只要有一个为“1”,“或”的结果就为 “1”。 Date19 第2章 计算机中的数制和编码 (3) “非”运算(NOT) 变量的“非”运算结果用表示。逻辑“非”运算规则如下: (4) “异或”运算(XOR) “异或”运算可用符号“”表示。运算规则如下: 可以看出,两变量只要不同,“异或”运算的结果就为“1”。 Date20 第2章 计算机中的数制和编码 (4) “异或”运算(XOR) “异或”运算可用符号“”表示。运算规则如下: 可以看出,两变量只要不同,“异或”运算的结果就为“1”。 Date21 第2章 计算机中的数制和编码 例 2.7 A=11110101B, B=00110000B,求 解 Date22 第2章 计算机中的数制和编码 作 业 课本P30:1.(4),2.(4),3.(2),4.(2),5(全部) * 完成下列数的运算。 (1)、 7A6C+56DF (2)、7A6C-56DF Date23 第2章 计算机中的数制和编码 2.2 带符号数的表示及运算 2.2.1 机器数与真值 在计算机中,为了区别正数和负数,通常用二进制数的最 高位表示数的符号。对于一个字节型二进制数来说,D7位为符 号位,D6D0位为数值位。在符号位中,规定用“0”表示正, “1”表示负,而数值位表示该数的数值大小。 把一个数及其符号位在机器中的一组二进制数表示形式, 称为“机器数”。 机器数所表示的值称为该机器数的“真值”。 Date24 第2章 计算机中的数制和编码 1.原码 正数原码:符号位为0,数值位照抄。 负数原码:符号位为1,数值位照抄。 例:(1)、当机器字长n=8时, X=+25=+00011001B X原=00011001B X= -25= -00011001B X原=10011001B (2)、 当机器字长n=16时, X=+25=+0000000000011001B X原=0000000000011001B X= -25= -0000000000011001B X原=1000000000011001B 2.2.2 机器数的表示方法(原码、反码、补码) Date25 第2章 计算机中的数制和编码 注: 1、原码表示数的范围是-(2n-1-1)+ (2n-1-1) 。8位二进 制原码表示数的范围为-127+127,16位二进制原码表示数的范 围为-32767+32767。 2、“0”的原码有两种表示法: +0原=00000000, -0原=10000000。 原码表示法简单直观,且与真值的转换很方便,但不便于在 计算机中进行加减运算。按这种运算方法设计的算术运算电路 很复杂。 Date26 第2章 计算机中的数制和编码 2、反码 正数反码:符号位为0,数值位照抄。 负数反码:符号位为1,数值位取反。 例: (1)、当机器字长n=8时, X=+25=+00011001B X反=00011001B X= -25= -00011001B X反=11100110B (2)、当机器字长n=16时, X=+25=+0000000000011001B X反=0000000000011001B X= -25= -0000000000011001B X反=1111111111100110B Date27 第2章 计算机中的数制和编码 反码表示数的范围是-(2n-1-1)+ (2n-1-1) 。8位二进制反码 表示数的范围为-127+127,16位二进制反码表示数的范围 为-32767+32767; “0”的反码有两种表示法: +0反=00000000, -0反=11111111。 Date28 第2章 计算机中的数制和编码 3. 补码 为了将减法运算变成加法来做,有符号数在计 算机内一律采用补码表示。 正数补码:符号位为0,数值位照抄。 负数补码:符号位为1,数值位取反加一。 例:X=+25=+00011001B X补=00011001B X= -25= -00011001B X反=11100110B X补=11100111B 当机器字长n=16时(同上,略) Date29 第2章 计算机中的数制和编码 可以看出,补码表示数的范围是-2n-1+ (2n -1-1) 。 8位二进制补码表示数的范围为 -128+127,16位二进制反码表示数的范 围为-32768+32767。 “0”的补码只有一种表示法: +0补= -0补= 00000000。 -128补=10000000 -0补 Date30 第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 Date31 第2章 计算机中的数制和编码 2. 反码转换为真值 要求反码的真值,只要先求出反码对应的原码,再按上述原 码转换为真值的方法即可求出其真值。 正数的原码是反码本身。 负数的原码可在反码基础上,符号位仍为1不变,数值位按 位取反。 例2.9 已知x反=00001111B,y反=11100101B,求x和y。 解 x原= x反=00001111B x=+(026+025+024+123+122+121+120)=15 y原=10011010B, y=-(026+025+124+123+022+121+020)= -26 Date32 第2章 计算机中的数制和编码 3. 补码转换为真值 同理,要求补码的真值,也要先求出补码对应的原码。 正数的原码与补码相同。 负数的原码可在补码基础上再次求补,即: Date33 第2章 计算机中的数制和编码 例2.10 已知x补=00001111B,y补=11100101B,求x和y 解 x原= x补=00001111B, x=+(026+025+024+123+122+121+120)=15 y原=y补补=10011011B, y=-(026+025+124+123+022+121+120)= -27 Date34 第2章 计算机中的数制和编码 原码、反码和补码的小结原码、反码和补码的小结 1)正数的原码、反码、补码相同;负数的原码、反码、 补码各不相同,但符号位都是1。反之,若符号位是1,则不管是 原码、反码还是补码,都代表负数。 2)设字长为八位,原码、反码的表数范围为 -127+127,补码的表数范围为-128+127。 3)已知某负数的补码,求该负数的真值,方法如下: 符号位不动,其余位求反加一,得到的是该负数的原码 ; 根据原码即可写出该负数的真值。 例:X补=11111100B X原=10000011B+1=10000100B X= -0000100= - 4 Date35 第2章 计算机中的数制和编码 二进制数 无符号十进制数 带 符 号 数 原码反码补码 0000 0000 0000 0001 0000 0010 0111 1110 0111 1111 1000 0000 1000 0001 1111 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.1 8位二进制数的原码、反码和补码表 Date36 第2章 计算机中的数制和编码 课堂练习 1、若X补=1000 0000,则X的真值是多少?“-0”的补码是 多少? 2、设X=1011 1011,求X为(1)无符号数、(2)原码、 (3)反码 、(4)补码时,分别表示的值(十进制)是多少? 答:-128 ,00000000 答:(1)、=127+ 026+125+124+123+022+121+120 = 187 (2)、=-(026+125+124+123+022+121+120) =-59 (3)、X原=1100 0100 =-(126+122)=-68 (4)、 X原=X补补=1100 0101 =-(126+122+120)=-69 注意:同一个二进制数,当认为它是不同形式的编码时,它所代 表的数值是不同的。 Date37 第2章 计算机中的数制和编码 -128补=? -0补=? +0 原=00000000,-0 原10000000。 +0 反=00000000,-0 反=11111111。 0 补=00000000 原码定义: 反码定义: 补码定义: 即:规定:-128补=10000000,-0补=+0补= 00000000 返回 Date38 第2章 计算机中的数制和编码 2.2.4 补码的加减运算 1. 补码加法 在计算机中,凡是带符号数一律用补码表示,运算结果自 然也是补码。其运算特点是:符号位和数值位一起参加运算, 并且自动获得结果(包括符号位与数值位)。 补码加法的运算规则为: 即:两数补码的和等于两数和的补码。 (2.2.5) Date39 第2章 计算机中的数制和编码 例2.11 已知 +51补=0011 0011B,+66补=0100 0010B, -51补=1100 1101B, -66补=1011 1110B 求 +66补+51补=?+66补+-51补=?-66补+-51补=? 解 二进制(补码)加法 十进制加法 0100 0010 + 66补 + 66 +)0011 0011 + 51补 +) + 51 0111 0101 +117补 +117 即:将两个加数(正数)都化为补码进行加法运算,所得到的补码再化 为真值,运算的结果是正确的。 运算规则验证 Date40 第2章 计算机中的数制和编码 二进制(补码)加法 十进制加法 0100 0010 + 66补 +66 +) 1100 1101 51补 +) 51 0000 1111 +15补 +151自动丢失 即:将一正一负的两个加数都化为补码进行加法运算, 所得到的补码再化为真值,运算的结果同样是正确的。 运算规则验证 Date41 第2章 计算机中的数制和编码 二进制(补码)加法 十进制加法 1011 1110 - 66补 -66 +) 1100 1101 51补 +) 51 1000 1011 -117补 -1171自动丢失 即:将两个均为负的加数都化为补码进行加法运算,所得 到的补码再化为真值,运算的结果同样是正确的。 可以看出,不论被加数、加数是正数还是负数,只要直接用它 们的补码直接相加,当结果不超出补码所表示的范围时,计算结 果便是正确的补码形式。但当计算结果超出补码表示范围时,结 果就不正确了,这种情况称为溢出。 运算规则验证 Date42 第2章 计算机中的数制和编码 2. 补码减法 补码减法的运算规则为: (2.2.6) Date43 第2章 计算机中的数制和编码 例2.12 已知 +51补=0011 0011B,+66补=0100 0010B 51补=1100 1101B,66补=1011 1110B 求 +66补+51补=?66补 51补=? 解 +66补 +51补=+66补+51补 66补 51补=66补+51补 运算规则验证 Date44 第2章 计算机中的数制和编码 二进制(补码)加法 十进制加法 0100 0010 + 66补 +66 +) 1100 1101 51补 -) +51 0000 1111 +15补 +151自动丢失 二进制(补码)加法 十进制加法 1011 1110 - 66补 -66 +) 0011 0011 +51补 -) -51 1111 0001 -15补 -15 可以看出,无论被减数、减数是正数还是负数,上述补码 减法的规则都是正确的。 运算规则验证 Date45 第2章 计算机中的数制和编码 计算机中带符号数用补码表示时有如下优点: 利用补码的方法,可以将减法运算变为加法运算,因此 加法和减法运算可使用同一个运算器(加法器)来实现;无符号 数和有符号数的运算也可使用同一套电路来实现。简化了电路 。 事实上,乘法运算可以用”加法+右移”来实现,除法运 算是乘法运算的逆运算,可以用”减法(加法)+左移”来实现, 也就是说乘法和除法运算均可用加法器和移位寄存器来实现。 解释 即:算术运算可用加法器和移位寄存器来实现。 所以说,“运算器”的核心部分是由具有某些逻辑运算功 能的加法器和移位寄存器组成。 Date46 第2章 计算机中的数制和编码 乘法可采用移位(右移)和加法来实现, 部分积右移的方法示例: 1111(R2R3)1101(R6R7) 0 0 0 0(部分积,R4R5) 1 1 1 1 1 1 1 1 0 1 1 1 1(右移1位) 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 (右移1位) 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 (右移1位) 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 (右移1位) + + + 1 + 1 1111 1101 1111 0000 1111 1111 11000011 Date47 第2章 计算机中的数制和编码 除法运算示例 例:100011101=111(余0) 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1- 0 1 1 1 1 1 1 1 1 0(左移1位) 1 0 1- 0 1 0 1 0 1 0 1 0 0 (左移1位) 1 0 1- 0 0 0 0 0 商为”1” 商为”1” 商为”1” 除法是乘法的逆运算, 用移位(左移)、 相减的方法来完成。 返回 Date48 第2章 计算机中的数制和编码 2.2.5 溢出及其判断方法 1. 进位与溢出 进位:指运算结果的最高位向更高位的进位。用来判断无 符号数运算结果是否超出了计算机所能表示的最大无符号数的 范围。 溢出:指带符号数的补码运算溢出。用来判断带符号数补 码运算结果是否超出了补码所能表示的范围。例如,字长为n位 的带符号数,它能表示的补码范围为2n1+2n11,如果运算结 果超出此范围,就叫补码溢出,简称溢出。 Date49 第2章 计算机中的数制和编码 若符号位进位状态用CF来表示,当符号位向前有进位时, CF=1,否则,CF=0; 数值部分最高位的进位状态用DF来表示,当该位向前有进 位时,DF=1,否则,DF=0。单符号位法就是通过该两位进位 状态的异或结果来判断是否溢出的。 (2.2.7) 若OF=1,说明结果溢出;若OF=0,则结果未溢出。也就 是说,当符号位和数值部分最高位同时有进位或同时没有进位 时,结果没有溢出,否则,结果溢出。 2. 溢出的判断方法 Date50 第2章 计算机中的数制和编码 无符号数 带符号数 01000100 68 +68补 +)01001000 +)72 +) +72补 10001100 140 +140补 DF=1 CF=0 例2.13 设有两个操作数x=01000100B,y=01001000B,将 这两个操作数送运算器做加法运算,试问: 若为无符号数, 计算结果是否正确? 若为带符号补码数,计算结果是否溢出 ? 解 Date51 第2章 计算机中的数制和编码 例2.14 设有两个操作数x=11101110B,y=11001000B,将这 两个操作数送运算器做加法运算,试问: 若为无符号数,计 算结果是否正确? 若为带符号补码数,计算结果是否溢出? 解 无符号数 带符号数 11101110 238 -18补 +)11001000 +)200 +) 56补 10110110 438 -74补 DF=1 CF=1 1自动丢失 Date52 第2章 计算机中的数制和编码 作业(P31) 6-(1) 7-(1)、(3) 8-(1)、(3)、(5)、(7) 9 12-(1) 补充题:为什说,“运算器”的核心部分是由具有某 些逻辑运算功能的加法器和移位寄存器组成? Date53 第2章 计算机中的数制和编码 2.3 信 息 的 编 码 如上所述,在计计算机中,数是用二进进制表示的。数分无符号数和有符 号数两种: 1、无符号数。在某些情况下,要处理的数全是正数,此时再保留符号位就 没有意义了,这时人们可以把最高有效位也作数值处理,这样的数称为无符 号数。常用的无符号整数是表示地址的数,此外,如双精度数的低位字也是 无符号整数。 2、有符号数。 而计计算机进进行人机交换时换时 用到的信息如数字、字母、符号等 都要以特定的二进进制编码编码 来表示,这这就是信息的编码编码 。 Date54 第2章 计算机中的数制和编码 2.3.1 二进制编码的十进制数(BCD编码) 虽然二进制数对计算机来说是最佳的数制,但是不直观,人们计算机的 输入输出时,通常还是用十进制表示。人们提出了一个比较适合于十进制系 统的二进制编码的特殊形式,即将1位十进制的09这10个数字分别用4位二 进制码的组合来表示,在此基础上可按位对任意十进制数进行编码。这就是 二进制编码的十进制数,简称BCD码(Binary-Coded Decimal)。 但为了便于记忆,最常用的是8421 BCD码,这种编码从00001111这16 种组合中选择前10个即00001001来分别代表十进制数码09,8、4、2、1分 别是这种编码从高位到低位每位的权值。 它是“逢十进一”的,是十进制数, 但它的每一位用四位二进制编码来表示。 BCD码有两种形式,即压缩型BCD码和非压缩型BCD码。 Date55 第2章 计算机中的数制和编码 1压缩型BCD码 压缩型BCD码用一个字节表示两位十进制数。例如, 10000110B表示十进制数86。 2非压缩型BCD码 非压缩型BCD码用一个字节表示一位十进制数。高4位总是 0000,低4位用00001001中的一种组合来表示09中的某一个十 进制数。 Date56 第2章 计算机中的数制和编码 表2.2 8421 BCD 码部分编码表 十进制数压缩型BCD码非压缩型BCD码 1 2 3 9 10 11 19 20 21 00000001 00000010 00000011 00001001 00010000 00010001 00011001 00100000 00100001 00000001 00000010 00000011 00001001 00000001 00000000 00000001 00000001 00000001 00001001 00000010 00000000 00000010 00000001 Date57 第2章 计算机中的数制和编码 注:1、BCD码可简化人机联系。 2、编码效率低。如十进制数“7”用纯二进制码表示为“111” ,而用BCD码表示则为“00000111”。 3、由于BCD码是“逢十进一”的,是十进制数,而计算机总 是将它当作二进制数计算,每4位为一组,是“逢十六进一”的, 运算结果不正确,要对它时行修正。 4、注意一个数的二进制和该数的BCD码是不一样的。如: 12D=00001100B=CH,12D=00010010(BCD) Date58 第2章 计算机中的数制和编码 例2.15 十进制数与BCD数相互转换。 将十进制数69.81转换为压缩型BCD数: 69.81=(0110 1001.1000 0001)BCD 将BCD数1000 1001.0110 1001转换为十进制数: (1000 1001.0110 1001)BCD=89.69 Date59 第2章 计算机中的数制和编码 例2.17 (BCD码运算时的修正问题)用BCD码求38+49。 解 0011 1000 38的BCD码 +) 0100 1001 49的BCD码 1000 0001 81的BCD码 计算结果1000 0001是81的BCD数,而正确结果应为87的 BCD数1000 0111,因此结果是错误的。其原因是,十进制数相加 应该是“逢十进一”,而计算机按二进制数运算,每4位为一组, 低4位向高4位进位与十六进制数低位向高位进位的情况相当,是 “逢十六进一”,所以当相加结果超过9时将比正确结果少6,因此 结果出错。解决办法是对二进制加法运算结果采用“加6修正”, 从而将二进制加法运算的结果修正为BCD码加法运算结果。 Date60 第2章 计算机中的数制和编码 BCD数相加时,对二进制加法运算结果修正的规则如下: 如果两个对应位(低4位或高4位二进制)BCD数相加的 结果向高位无进位,且结果小于或等于9,则该位不需要修正; 若得到的结果大于9而小于16,则该位需要加6修正。 如果两个对应位(低4位或高4位二进制) BCD数相加的 结果向高位有进位(结果大于或等于16),则该位需要进行加6修 正。 因此,两个BCD数进行运算时,首先按二进制数进行运算 ,然后必须用相应的调整指令进行调整,从而得到正确的BCD 码结果。 Date61 第2章 计算机中的数制和编码 34+23570011 0100 34的BCD码 + 0010 0011 23的BCD码 0101 0111 57的BCD码 结果正确,不需要调整。 例1: Date62 第2章 计算机中的数制和编码 例2.16 设有变量x等于10010110B,当该变量分别为无符号数 、原码、补码、压缩型BCD码时,试分别计算变量x所代表的数 值大小。 解 无符号数: x=10010110B=127+026+025+124+023+122+121+020=150 原码:x原=10010110B x= 026+025+124+023+122+121+020= 22 补码:x补=10010110B x原=x补补=11101010B x= 126+125+024+123+022+121+020= 106 BCD码:xBCD=10010110B x=96 Date63 第2章 计算机中的数制和编码 注 意 送给计算机处理的二进制形式的操作数( 机器数),到底是无符号数、补码形式的带 符号数或者是其他形式的编码信息,完全 由程序设计者决定,程序设计者应心中有 数,否则无法对计算结果做出正确的判断 和处理。 Date64 第2章 计算机中的数制和编码 482977 0100 1000 48的BCD码 + 0010 1001 29的BCD码 0111 0001 71的BCD码 0100 1000 + 0010 1001 0111 0001 中间结果 AF1 + 0000 0110 加06H调整 0111 0111 正确结果,77的BCD码 加法运算后,低4位若向高4位有进位(即AF=1),调整指令应 做加06H处理。 例2: Date65 第2章 计算机中的数制和编码 2.3.2 ASCII字符编码 所谓字符,是指数字、字母以及其他一些符号的总称。 现代计算机不仅用于处理数值领域的问题,而且要处理大 量的非数值领域的问题。这样一来,必然需要计算机能对数字 、字母、文字以及其他一些符号进行识别和处理,而计算机只 能处理二进制数,因此,通过输入/输出设备进行人机交换信息 时使用的各种字符也必须按某种规则,用二进制数码0和1来编 码,计算机才能进行识别与处理。 Date66 第2章 计算机中的数制和编码 目前,国际上使用的字符编码系统有许多种。在微机、通信 设备和仪器仪表中广泛使用的是ASCII码(American Standard Code for Information Interchange)美国标准信息交换码。 ASCII码用一个字节来表示一个字符,采用7位二进制代码来对 字符进行编码,最高位一般用做校验位。7位ASCII码能表示 27=128种不同的字符,其中包括数码(09),英文大、小写字母 ,标点符号及控制字符等,见表2.3。 该表的使用方法读者应熟练掌握。如数字“1”的ASCII码值 为31H,字母“A”的ASCII码值为41H,符号“?”的ASCII码值为 3FH等。 Date67 第2章 计算机中的数制和编码 表2.3 美国标准信息交换码ASCII(7位代码) 响铃 换行 回车 空格 Date68 第2章 计算机中的数制和编码 回车符(CR)与换行符(LF)的区别? 回车符(CR):光标回到当前行的开头却不向下 移一行。 换行符(LF):光标下移一行,但不会移到这一 行的开头。 在文字编辑中,它们没有区别。即一般说的回 车,既有回车符(CR)的功能又有换行符(LF)的功能。 Date69 第2章 计算机中的数制和编码 ASCII一些规律 字符09这10个数字符的高3位编码都为011, 低4位为00001001,屏蔽掉高3位的值,低4位 正好是数据09的二进制形式。这样编码的好处 是既满足正常的数值排序关系,又有利于ASCII 码与二进制码之间的转换。 英文字母的编码值满足AZ或az正常的字母 排序关系。 大小写英文字母编码仅是B5位值不相同,B5为 1是小写字母,这样编码有利于大小写字母之间 的编码转换。 (a)ASCII-(A)ASCII=20H=32D 。 Date70 第2章 计算机中的数制和编码 2.3.3 汉字的编码 计算机在处理汉字时,汉字字符也 必须用基2码编码表示,一般汉字编码采用 两个字节即16位二进制数。但由于汉字的 特殊性,在汉字的输入、存储、输出过程 中所使用的汉字编码是不一样的,输入时 有输入编码,存储时有汉字机内码,输出 时有汉字字形码。 Date71 第2章 计算机中的数制和编码 1) 汉字输入编码 为了能把汉字这种象形文字通过西 文标准键盘输入到计算机内,就必须对汉 字用键盘已有的字符设计编码,这种编码 称为汉字的输入编码。 同一汉字有不同的输入编码,这取 决于用户采用哪种输入法。不同的输入法 对同一汉字有不同的编码方案。常见的有 数字码、音码、形码及混合码。 Date72 第2章 计算机中的数制和编码 2) 汉字机内码 汉字机内码也称汉字内部码,简称 内码。它是机器存储和处理汉字时采用的 统一编码。每个汉字的机内码是惟一的, 用两个字节表示。为了避免与西文字符的 ASCII码之间产生二义性,汉字机内码中两 个字节的最高位均规定为“1”。 3) 汉字字形码 汉字字形码也叫汉字字模点阵码, 是汉字输出时的字形点阵代码,是一串基2 码编码。 Date73 第2章 计算机中的数制和编码 当计算机在我国应用时,特别是把计算机用于管理等事务处 理领域时,就要求计算机能够输入、处理和输出汉字。显然汉 字在计算机中,也只能用若干位的二进制编码来表示。 国家根据汉字的常用程序定出了一级和二级汉字字符集,并 规定了编码,这就是中华人民共和国国家标准信息交换用汉字 编码,GB2312-80中汉字的编码即国标码。该标准编码字符集 共收录汉字和图形符号7445个,其中包括: 汉字的编码 Date74 第2章 计算机中的数制和编码 1一般符号202个,包括间隔符、标点、运算符、单位符号 和制表符等。 2_序号60个。它们是120(20个),(1)(20)(20个), (10个)和(一)(十)(10个)。 3数字22个。它们是09和I。 4英文字母52个,大、小写各26个。 5日文假名169个,其中平假名83个,片假名86个。 6希腊字母48个,其中大、小写各24个。 7俄文字母66个,其中大、小写各33个。 8汉语拼音符号26个。 9汉语注音字母37个。 10汉字6763个。这些汉字分为两级,第一级汉字3755个, 第二级汉字3008个。 Date75 第2章 计算机中的数制和编码 这个字符集中的任何一个图形、符号及汉字都是用两个7位的字 节表示(在计算机中当然用两个8位字节,每个字节的最高位为0来表 示)。国标码的每一个字节的定义域在21H到7EH。如啊字国标编码 为30H,21H。即为001 10000,00100001这两个字节。 国标码中,汉字的排列顺序为:一级汉字按汉语拼音字母顺序排 列,同音字母以笔划顺序为序;二级汉字按部首顺序排列。 为了使汉字的编码与常用的ASCII码相区别,在机器中,汉字是 以内码形式存储和传输的。一种机器常用若干种汉字输入方式(输入 码),但其内码是统一的。通常就是用汉字的国标码的两字节的最高 位都置“l”形成的。如汉字“啊”的国标码为00110000,00100001,则 它的内码为10110000,10100001即B0H,A1H。 Date76 第2章 计算机中的数制和编码 2.4 数的定点与浮点表示法 2.4.1 定点表示 所谓定点表示法,是指小数点在数中的位置是固定的。原理上 讲,小数点的位置固定在哪一位都是可以的,但通常将数据表示 成纯小数或纯整数形式,如图2.1所示。 图2.1 定点数的两种表示方法 (a) 纯小数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年练习题处方管理办法试题(+答案解析)
- 2025年火柴人战争考试题及答案
- 动漫产业协同创新与产业链协同效应理论框架研究报告
- 党群共建读书分享
- 销售管理晋升述职报告
- 养老轮椅培训课件模板
- 中小学生树立理想主题班会课件
- 步行街的巨变400字11篇范文
- 机床产业的新质生产力转型
- 景泰蓝磨蓝工入职考核试卷及答案
- 场景速写课件
- 2026年高考作文备考之抗日战争胜利80周年(九三阅兵)主题素材积累与运用
- 2025年运动员:体育与健康知识试题及答案
- 2025年调酒师职业资格考试模拟试题集锦及答案
- 基孔肯雅热主题班会课件
- 2025年北京市公务员考试行测真题及答案详解(全优)
- 2025《煤矿安全规程》新旧对照专题培训
- 2025-2026学年冀人版三年级科学上册(全册)教学设计(附目录)
- 手术室专科护士职业考试试卷与答案
- 门窗工程管理办法
- 依法治校视角下高校后勤管理法律风险的识别与化解策略
评论
0/150
提交评论