您好,欢迎访问三七文档
1第2章数制和编码2主要内容计算机中的常用计数制、编码及其相互间的转换;二进制数的算术运算和逻辑运算;符号数的表示及补码运算;二进制数运算中的溢出问题;基本逻辑门及译码器;定点数与浮点数的表示方法。3§2.1计算机中的数制了解:各种计数制的特点及表示方法;掌握:各种计数制之间的相互转换。4一、常用计数制十进制——符合人们的习惯二进制——便于物理实现十六进制——便于识别、书写5十进制特点:以十为底,逢十进一;共有0-9十个数字符号。表示:权表达式n:整数位数m:小数位数6二进制特点:以2为底,逢2进位;只有0和1两个符号。(数后面加B)表示:n:整数位数m:小数位数7十六进制特点:有0--9及A--F共16个数字符号,逢16进位。(数后面加H)表示:n:整数位数m:小数位数8任意K进制数的表示一般地,对任意一个K进制数S都可表示为120n120111()nnknmmniiimSSKSKSKSKSKSK其中:Si--S的第i位数码,可以是K个符号中任何一个;n,m–整数和小数的位数;K--基数;Ki--K进制数的权9例234.98或(234.98)101101.11B或(1101.11)2ABCD.BFH或(ABCD.BF)1610二、各数制间的转换非十进制数→十进制数:按相应的权表达式展开,再按十进制求和。例:24.AH=2×161+4×160+A×16-1=36.625注:A~F分别用10~15代入11十进制→非十进制数十进制→二进制:整数:除2取余;小数:乘2取整。十进制→十六进制:整数:除16取余;小数:乘16取整。以小数点为起点求得整数和小数的每一位。注:十进制转换成任意K进制数与上类似,整:除K取余,小数:乘K取整。12十进制到十六进制转换例400.25=(?)H400/16=25-----------余数=0(个位)25/16=1--------------余数=9(十位)1/16=0---------------余数=1(百位)0.25×16=4.0-----------整数=4(1/10)即:400.25=190.4H13二进制与十六进制间的转换用4位二进制数表示1位十六进制数0000-------------0H┇┇1001-------------9H1010-------------AH1011-------------BH1100-------------CH1101-------------DH1110-------------EH1111-------------FH14二进制与十六进制间的转换例:10110001001.110=(?)H010110001001.1100589.C注意:位数不够时要补015§2.2无符号二进制数的运算二进制数算术运算逻辑运算无符号数有符号数:算术运算16一、无符号数的算术运算加法运算减法运算乘法运算除法运算17注意点:对加法:1+1=0(有进位)对减法:0-1=1(有借位)对乘法:仅有1×1=1,其余皆为0;乘以2相当于左移一位。对除法:除以2则相当于右移1位。18例00001011×0100=00101100B00001011÷0100=00000010B即:商=00000010B余数=11B19二、无符号数的表示范围◇一个n位的无符号二进制数X,其表示范围为:0≤X≤2n-1若运算结果超出这个范围,则产生溢出。◇溢出的判别方法:运算时,当最高位向更高位有进位(或借位)时则产生溢出。20例:最高位向前有进位,产生溢出。本例中:运算结果为256,超出8位二进制数所能表示的范围255。21三、逻辑运算与(∧)或(∨)非(▔)异或(⊕)掌握:逻辑关系(真值表)和逻辑门。特点:按位运算,无进位/借位。22“与”、“或”运算任何数和“0”相“与”,结果为0任何数和“1”相“或”,结果为1BACABC&≥1A∧B=CA∨B=C23“非”、“异或”运算“非”运算即按位求反两个二进制数相“异或”:相同则为0,相异则为1AABC1⊕B=AAB=CB24“与非”、“或非”运算A∧B=CA∨B=CBACABC&≥125四、译码器74LS138译码器:G1G2AG2BCBAY0Y7••••3-8译码器原理译码使能端译码输入端译码输出端2674LS138真值表使能端输入端输出端G1G2AG2BCBAY0Y1Y2Y3Y4Y5Y6Y7011011010010010010010010010010000000101001110010111011111111111111111111111111111111111011111111011111111011111111011111111011111111011111111011111111027§2.3符号数的表示及运算计算机中的符号数的表示方法:把二进制数的最高位定义为符号位。符号位:“0”表示正,“1”表示负。把符号也数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。注:后面的讲述均以8位二进制数为例。28例+52=+0110100=00110100符号位数值位-52=-0110100=10110100真值机器数29一、符号数的表示:对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作[X]原,反码记作[X]反,补码记作[X]补。注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。30原码[X]原最高位为符号位,用“0”表示正,用“1”表示负;数值部分照原样写出即可。优点:真值和其原码表示之间的对应关系简单,容易理解;缺点:计算机中用原码进行加减运算比较困难,0的表示不唯一。正式定义为:1112[]22≥00≥-nnnXXXXX原31数0的原码+0=00000000-0=10000000即:数0的原码不唯一。32原码的例子真值:X=+18=+0010010X=-18=-0010010原码:[X]原=00010010[X]原=10010010符号符号位n位原码表示数值的范围是:对应的原码是1111~0111()~()112121nn33反码[X]反对一个数X:若X0,则[X]反=[X]原若X0,则[X]反=对应原码的符号位不变,数值部分按位求反。正式定义为:112](21)2≥00≥-nnnXXXXX反[34反码例X=-52=-0110100[X]原=10110100[X]反=11001011350的反码[+0]反=00000000[-0]反=11111111即:数0的反码也不是唯一的。n位反码表示数值的范围是对应的反码是1000~0111()~()112121nn36补补码[X]补定义:若X0,则[X]补=[X]反=[X]原若X0,则[X]补=[X]反+1正式定义为:[]11222-≤<nnnXXX+37例X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100380的补码[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000n位补码表示数值的范围是对应的补码是1000~0111对8位字长,进位被舍掉~()11221nn39特殊数10000000该数在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128对无符号数,(10000000)B=128408/16位符号数的表示范围对8位二进制数:原码:-127~+127反码:-127~+127补码:-128~+127对16位二进制数:原码:-32767~+32767反码:-32767~+32767补码:-32768~+3276741符号二进制数与十进制的转换对用补码表示的二进制数:1)求出真值2)进行转换42例将一个用补码表示的二进制数转换为十进制数。[X]补=00101110B真值为:0101110B正数所以:X=+46[X]补=11010010B真值不等于:-1010010B负数而是:X=[[X]补]补=[11010010]补=-0101110=-4643二、符号数的算术运算通过引进补码,可将减法运算转换为加法运算。即:[X+Y]补=[X]补+[Y]补[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补其中X,Y为正负数均可,符号位参与运算。44补码的运算是基于模的运算模(module)就是一个计数系统的最大容量。例如钟表的模为12,8位二进制数的模为28,等等。凡是用器件进行的运算都是有模运算,运算结果超过模的部分会被运算器自动丢弃。因此,当器件为n位时,有X=2n+X(mod2n)根据定义,[X]补=2n+X(mod2n)因此可得,[XY]补=2n+2n+(XY)(mod2n)=(2n+X)+(2nY)(mod2n)=[X]补+[Y]补45例X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原=01110100所以:[X+Y]补=[X]补+[Y]补=11001100+01110100=01000000X+Y=+100000046符号数运算中的溢出问题两个8位带符号二进制数相加或相减时,若C7C6=1则结果产生溢出。其中:C7为最高位的进(借)位;C6为次高位的进(借)位。对16位或32位的运算,也有类似结论。47观察以下四种情况哪个溢出?10110101+1000111110100010001000010+011000111010010101000010+11001101100001111CASE1:CASE2:CASE3:假定以下运算都是有符号数的运算。00100010+1100110111101111CASE4:48例:若:X=01111000,Y=01101001则:X+Y=即:次高位向最高位有进位,而最高位向前无进位,产生溢出。(事实上,两正数相加得出负数,结果出错)11100001011010010111100049§2.4定点数与浮点数定点数:小数点位置固定不变的数。小数点的位置:纯小数纯整数符号X1X2Xn…小数点位置符号X1X2Xn…小数点位置50浮点数浮点数来源于科学记数法例如:+123.5=+0.123×103-0.001235=-0.123×10-2浮点数:用阶码和尾数表示的数,尾数通常为纯小数。2E×F数符阶E阶符尾数F小数点位置阶码5180x86中使用的IEEE标准浮点数单精度浮点数(阶码偏移7FH)双精度浮点数(阶码偏移3FFH)数符阶E(11位)尾数F(52位),整数部分默认为1小数点位置数符阶E(8位)尾数F(23位),整数部分默认为1小数点位置31302322063625251052例:将1011.10101用8位阶码、15位尾数的规格化浮点数形式表示。解:因为1011.10101=0.101110101×24所以要求的浮点数为:000001001011101010000000阶码阶符数符尾数(后补0到15位)用IEEE标准单精度浮点数重做上题。因为1011.10101=1.01110101×23,阶为7FH+3=82H=10000010B所以要求的浮点数为:0100000100111010100000000000000053§2.4计算机中的编码用于表示非数值型数据。常用的二种:BCD码用二进制编码的十进制数ASCII码美国标准信息交换代码54BCD码压缩BCD码用4位二进制码表示一位十进制数,一个字节可放2位十进制数。非压缩BCD码用8位二进制码表示一位十进制数,高4位总为0。55BCD码
本文标题:数值转换
链接地址:https://www.777doc.com/doc-5753333 .html