第二章 数制与编码_第1页
第二章 数制与编码_第2页
第二章 数制与编码_第3页
第二章 数制与编码_第4页
第二章 数制与编码_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主要内容无符号数表示方法,各种数制的相互转换,二进制数的运算规则;带符号数的表示方法、补码加减法运算以及溢出的判断;2.1无符号数的表示及运算2.1.1无符号数的表示方法1、十进制数的表示方法(后缀D或d,也可以省略):138.5(D)=1×102+3×101+8×100+5×10-12、二进制数的表示方法(后缀B或b):1101.11B=1×23+1×22+0×21+1×20+1×2-1+1×2-2=13.75(D)3、十六进制数的表示法(后缀H或h):用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F来表示16个数符中的任何一个,且如果一个十六进制数的最高位是A~F中的一个数字符号时,该数前面必须加0,以与变量名区别!!!0E5.BFH=14×161+5×160+11×16-1+15×16-24、任意进制数(基数位X)的表示方法:其中X为基数,m为小数位的位数,n位整数部分的位数,ki为第i位的数制,Xi为第i位的权值。2.1.2各种数制的相互转换1、任意进制数转换为十进制数方法:各位按权展开求和即可。2、十进制数转换为二进制数整数:除以基数(2)取余数,结果先为低位后为高位小数:乘以基数(2)取整数,结果先为高位后为低位例:将13.75转换为二进制数解:整数:213

余1低26余023余121余1高小数:

0.75×2=1.5取10.5×2=1.0取10×2=0取013.75=1101.11B课下自行练习3、二进制数与十六进制数之间的转换方法:以小数点为界,向左(整数部分)每四位为一组,高位不足四位时补0;向右(小数部分)每四位为一组,低位不足四位时补0。然后分别用一个十六进制数表示每一组重的四位二进制数。例:将1101110.01011B转换为十六进制数。1101110.010110000B=6E.58H将十六进制数转换为二进制数的方法:直接将每一位十六进制数写成其对应的四位二进制数。练习:将2F.2BH转换为二进制数2.1.3二进制数的运算1.

二进制数的算术运算(1)

加: 0+0=00+1=11+0=11+1=0(进1) (2)减: 0-0=01-1=01-0=10-1=1(借位) (3)

乘: 00=001=010=011=1 (4)

除:二进制除法是乘法的逆运算。

2.

二进制数的逻辑运算(1)“与“运算(AND).“与”运算又称逻辑乘,可用符号“”或“”表示。运算规则如下:00=001=010=011=1可以看出,只有当两个变量均为“1”时,“与”的结果才为“1”。

(2)

“或”运算(OR)“或”运算又称逻辑加,可用符号“”或“+”表示。运算规则如下:00=001=110=111=1可以看出,两个变量只要有一个为“1”,“或”的结果就为“1”。

(3)

“非”运算(NOT)

变量的“非”运算结果用表示。逻辑“非”运算规则如下:(4)

“异或”运算(XOR)“异或”运算可用符号“”表示。运算规则如下:

可以看出,两变量只要不同,“异或”运算的结果就为“1”。

解:A=11110101BB=00110000B例A=11110101B,B=00110000B,求2.2带符号数的表示及运算2.2.1机器数与真值把一个数及其符号位在机器中的一组二进制数表示形式称为“机器数”。机器数所表示的值称为该机器数的“真值”。用二进制数的最高位表示数的符号,规定用“0”表示正,“1”表示负,数制位表示该数的数值大小。机器数的表示方法原码表示法反码表示法补码表示法2.2.2机器数的表示方法1、原码字长设数x的原码记做[x]原,机器字长为n,则原码定义如下:正数负数在原码表示法中,最高位为符号位,其余数字为表示该数的绝对值。当机器字长n=8时:[+0]原=00000000B;[-0]原=10000000B[+8]原=00001000B;[-8]原=10001000B当机器字长n=16时:[+0]原=0000000000000000B;[-0]原=1000000000000000B[+8]原=0000000000001000B;[-8]原=1000000000001000B原码表示数的范围是-(2n-1-1)~(2n-1-1)[x]原=每个字所包含的字的位数2、反码设数x的反码记做[x]反,如机器字长为n,则反码定义如下:正数的反码与其原码相同;负数的反码是在原码的基础上,符号位不变,数制位按位取反。当机器字长n=8时:[+0]反=[+0]原=00000000B;[+127]反=[+127]原=01111111B[-0]反=(28-1)-0=11111111B;[-127]反=(28-1)-127=10000000B反码表示数的范围是-(2n-1-1)~+(2n-1-1)[x]反=3、补码设数x的补码记作[x]补,如机器字长为n,则补码定义如下:[x]补=正数的补码与其原码、反码相同;负数的补码在原码的基础上,符号位不变,数值位按位取反,末位加一;或在反码的基础上末位加一。当机器字长n=8时:补码表示数的范围是-2n-1~+(2n-1-1)2.2.3真值与机器数之间的转换把一个数及其符号位在机器中的一组二进制数表示形式称为机器数;机器数所表示的值称为真值。1、原码转换为真值将原码数值位各位按权展开求和,由符号位决定数的正负。例已知[x]原=00011111B,[y]原=10011101B,求x和y。解:x=+(0×26+0×25+1×24+1×23+1×22+1×21+1×20)=31y=-(0×26+0×25+1×24+1×23+1×22+0×21+1×20)=-292、反码转换为真值求出反码对应的原码,按照原码求真值的方法即可得到真值。正数的原码与反码相同;负数的原码是在反码基础上,符号位不变,数值位按位取反。例已知[x]反=00001111B,[y]反=11100101B,求x和y。解:[x]原=[x]反=00001111Bx=+(0×26+0×25+0×24+1×23+1×22+1×21+1×20)=15[y]原=10011010By=-(0×26+0×25+1×24+1×23+0×22+1×21+0×20)=-263、补码转换为真值求出补码对应的原码,按照原码求真值的方法即可得到真值。正数的原码与补码相同;负数的原码是在补码基础上再次求补,即补码的补码等于原码。例已知[x]补=00001111B,[y]补=11100101B,求x和y。解:[x]原=[x]补=00001111Bx=+(0×26+0×25+0×24+1×23+1×22+1×21+1×20)=15[y]原=[[y]补]补=10011011By=-(0×26+0×25+1×24+1×23+0×22+1×21+1×20)=-272.2.4补码的加减运算1、补码加法特点:符号位和数值位一起参加运算,自动获得结果(包括符号位和数制位)运算规则:[x]补+[y]补=[x+y]补已知[+51]补=00110011B,[+66]补=01000010B,

[-51]补=11001101B,[-66]补=10111110B求[+66]补+[+51]补=?[+66]补+[-51]补=?[-66]补+[-51]补=?例解:

二进制(补码)加法十进制加法 01000010[+66]补+66+)00110011[+51]补+)+51 01110101[+117]补 +117结果正确

二进制(补码)加法十进制加法01000010[+66]补+66+)11001101[−51]补+)−5100001111[+15]补 +151自动丢失结果正确

二进制(补码)加法十进制加法10111110[-66]补-66+)11001101[−51]补+)−5110001011[-117]补 -1171自动丢失由于[−66]补+[−51]补=10001011B=[(−66)+(−55)]补结果为负,因此[(−66)+(−55)]原=[[(−66)+(−55)]补]补=11110101B其真值为−117,计算结果正确。当计算结果不超出补码所表示的范围时,计算结果便是正确的补码形式,否则,则产生溢出。当最高位向更高位的进位由于机器字长的限制而自动丢失时,不会影响计算结果的正确性。2、补码减法运算规则:已知[+51]补=00110011B,[+66]补=01000010B[−51]补=11001101B,[−66]补=10111110B求[+66]补−[+51]补=?[−66]补−[−51]补=?例解:[+66]补−[+51]补=[+66]补+[−51]补;[−66]补−[−51]补=[−66]补+[+51]补

二进制(补码)加法十进制加法01000010[+66]补+66+)11001101[−51]补-)+5100001111[+15]补 +151自动丢失结果正确

二进制(补码)加法十进制加法10111110[-66]补-66+)00110011[+51]补-)-5111110001[-15]补 -15

结果正确

带符号数用补码表示时有如下优点:1、可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算。2、无符号数和带符号数的加法运算可以用同一个加法器实现,结果均正确。

补码表示

无符号数带符号数11100001 225 [−31]补+)00001101 +) 13 +)[+13]补11101110 238[−18]补参与运算的操作数,设计者必须心中有数!2.2.5溢出及其判断方法1、进位与溢出进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。

2、溢出的判断方法常用方法:通过符号位和数值部分最高位的进位状态来判断结果是否溢出。CF表示符号位进位状态,当符号位向前有进位时,CF=1,否则,CF=0;DF表示数值部分最高位的进位状态,当该位有进位时,DF=1,否则,DF=0。若OF=1,说明结果溢出;若OF=0,则结果未溢出。例设有两个操作数x=01000100B,y=01001000B,将这两个操作数送运算器做加法运算,试问:①若为无符号数,计算结果是否正确?②若为带符号补码数,计算结果是否溢出?

无符号数带符号数0100010068[+68]补+)01001000+)72+)[+72]补10001100140[+140]补DF=1CF=0解:①若为无符号数,由于CF=0,则结果未超出8位无符号数能表达的数值范围(0255),计算结果10001100B为无符号数,真值为140,计算结果正确。②若为带符号数补码,由于OF=1,结果溢出。两个正数相加,结果为负数。2.3信息的编码2.3.1二进制编码的十进制数(BCD编码)常用的是8421BCD码,有10个有效状态。BCD码压缩型BCD码:用一个字节表示两位十进制数。非压缩型BCD码:用一个字节表示一位十进制数。十进制数压缩型BCD码非压缩型BCD码12391011192021000000010000001000000011000010010001000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论