您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第1章数据在计算机中的运算及表示形式.
微型计算机原理教师:马光喜手机:13608518510邮箱:249849867@qq.com教学时数:54学时实验学时:18学时平时成绩:40%(作业、考勤、纪律)期末成绩:60%(闭卷考试)第1章数据在计算机中的运算及表示形式本章主要内容(1)进位记数制(2)不同进位制数之间的转换(3)二进制数的算术运算和逻辑运算(4)数据在计算机中的表示形式(5)二进制信息的计量单位1.1进位记数制计算机中全部信息(包括指令和数据)都是采用二进制数,为了书写方便,又经常采用十六进制。人们在日常生活中又广泛采用十进制。二进制、十六进制、十进制都是进位记数制。1.1.1进位记数制及其基数和权进位记数制:用一组固定的数字符号和特定的规则表示数的方法。基数和权在进位记数制中,一种进位制所允许选用的基本数字符号的个数称为这种进位制的基数。同一个数字符号处在不同的数位时,它所代表的数值是不同的,每个数字符号所代表的数值等于它本身乘以一个与它所在数位对应的常数,这个常数叫做位权,简称权(weight)。不同进位制的基数不同十进制:基数10,数字符号0~9二进制:基数2,数值符号0,1同一进制,不同数位其权值不同。1.1.2几种常用的进位记数制1.十进制任何一个十进制数,都可以用一个多项式来表示:等式右边的表示形式,称为十进制数的多项式表示法,也叫按权展开式;等号左边的形式,称为十进制的位置记数法。位置记数法是一种与位置有关的表示方法,同一个数字符号处于不同的数位时,所代表的数值不同,即其权值不同。21012312.253101102102105102.二进制二进制数的基数为2,即它所用的数字符号个数只有两个(“0”和“1”)。它的计数进位规则为“逢二进一”。二进制数只有两种数字符号,因而便于数字系统与电子计算机内部的表示与存储。它的另一个优点是运算规则的简便性,而运算规则的简单,必然导致运算电路的简单以及相关控制的简化。3.八进制八进制数的基数R=8,每位可能取八个不同的数字符号0~7中的任何一个,进位规则是“逢八进一”。1位八进制对应3位二进制八进制:0,1,2,3,4,5,6,7二进制:000,001,010,011,100,101,110,1114.十六进制十六进制数的基数R=16,每位用十六个数字符号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=(25+23+21+20+2-1+2-3)10=(32+8+2+1+0.5+0.125)10=(43.625)10同样的方法也可将八进制数转换为十进制数。这种用以实现数制转换的方法,称为多项式替代法。1.2.2十进制数转换为二进制数1.十进制整数转换为二进制整数除2取余,例如十进制数29的转换。29214余数1(B0)72232120余数0(B1)余数1(B2)余数1(B3)余数1(B4)∴29D=11101B采用“除8取余”或“除16取余”的方法,即可将一个十进制整数转换为八进制整数或十六进制整数。这种数制转换的方法称为基数除法或“除基取余”法。可概括为:“除基取余,直至商为0,注意确定高、低位”。2.十进制小数转换为二进制小数—乘2取整例把0.625转换成二进制数把0.625乘2取整0.625×2———1.250B-1=10.25×2———0.50B-2=00.5×2———1.0B-3=10.625=0.101B在十进制小数转换成二进制小数时,整个计算过程可能无限地进行下去,这时,一般考虑到计算机实际字长的限制,只取有限位数的近似值就可以了。上述这种数制转换方法称为基数乘法或“乘基取整”法。可概括如下:“乘基取整,注意确定高、低位及有效位数。”如果一个数既有整数部分又有小数部分,则用前述的“除基取余”及“乘基取整”结合求解。计算机中常用的进位计数制计数制基数数码进位关系二进制20、1逢二进一八进制80、1、2、3、4、5、6、7逢八进一十进制100、1、2、3、4、5、6、7、8、9逢十进一十六进制160、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、8192、16384、32768、65536例:187转为二进制为10111011187-128=5959-64=-559-32=2727-16=114位2进制与10进制、16进制的关系2进制10进制16进制2进制10进制16进制000000100088000111100199001022101010A001133101111B010044110012C010155110113D011066111014E011177111115F二与十六进制的关系:4位2进制等于1位16进制例:11011010010B=6D2H例:3AB4H=0011101010110100B十转十六:十→二→十六十六转十:十六→二→十十六进制数的运算(1)十六进制加法十六进制数的运算按照逢十六进一的规则进行,即当两个一位数之和S小于16时,与十进制数同样处理,如两个一位数之和S≥16时,则应该用S-16及进位1来取代S。十六进制的加法15C3H+3D45H5308H十六进制数的减法十六进制数的减法与十进制数类似,够减时可以直接相减,不够减时服从向高位借1为16的规则。十六进制的减法示例3DA6H-0FC3H2DE3H1.3二进制数的算术运算与逻辑运算1.3.1二进制数的算术运算加法运算规则:逢二进一减法运算规则:借一当二乘法运算规则:0×0=0,0×1=0,1×0=0,1×1=1例如:1101x1010=1101110二进制的乘法可以归结为:“加”和“移位”。除法运算:乘法的逆运算。以二进制的乘法及减法规则实现。1.3.2二进制数的逻辑运算逻辑运算与算术运算有着本质上的差别,它是按位进行的,其运算的对象及运算结果只能是0和1这样的逻辑量。这里的0和1并不具有数值大小的意义,而仅仅具有如“真”和“假”、“是”和“非”这样的逻辑意义。二进制数的逻辑运算实际上是将二进制数的每一位都看成逻辑量时进行的运算。基本的逻辑运算有逻辑“或”、逻辑“与”和逻辑“非”三种,常用的还有逻辑“异或”运算。(1)“或”运算(逻辑加,逻辑和;运算符号—+,V)ABC=A+B000110110111(2)“与”运算(逻辑乘,逻辑积;运算符号——·^×)ABC=A·B000110110001(3)“非”运算(运算符号——-,)AC=0110A(4)“异或”运算“异或”又称模2加,其运算规则是:0和任何数相“异或”该数不变,1和任何数相“异或”该数变反。可简述为“相同得0,不同得1”。其运算符号为“⊕”。如下所示:0⊕0=00⊕1=11⊕0=11⊕1=0例0110⊕1001=1111“异或”运算常用于将一个已知二进制数的某些位变反而其余各位不变。例如,欲使10101100的最低两位变反而其余各位不变,就可以用00000011与之进行“异或”运算来完现。即:10101100⊕00000011101011111.3.3移位运算1.逻辑移位逻辑左移:将操作数的所有位同时左移,最高位移出原操作数之外,最低位补0。逻辑左移一位相当于无符号数乘2。例如,将01100101逻辑左移一位后变成11001010,相当于(101)10×2=202。逻辑右移:将操作数的所有位同时右移,最低位移出原操作数之外,最高位补0。逻辑右移一位相当于将无符号数除以2。例如,将10010100逻辑右移一位后变成01001010,相当于148÷2=74。循环左移:将操作数的所有位同时左移,并将移出的最高位送到最低位。循环左移的结果不会丢失被移动的数据位。例如,将10010100循环左移一位后变成00101001。循环右移:将操作数的所有位同时右移,并将移出的最低位送到最高位。它也不会丢失被移动的数据位。例如,将10010100循环右移一位后变成01001010。2.算术移位算术移位是把操作数当作带符号数进行移位,所以在算术移位中,必须保持符号位不变。否则将发生溢出。与逻辑移位类似,算术移位可分为算术左移、算术右移、循环左移和循环右移。循环左移和循环右移的操作与前述逻辑移位时的情况相同,都是不丢失移出原操作数的位,而将其返回到操作数的另一端。1.4数据在计算机中的表示形式电子计算机实质上是一个二进制的数字系统,在机器内部,二进制数总是存放在由具有两种相反状态的存储元件构成的寄存器或存储单元中,即二进制数码0和1是由存储元件的两种相反状态来表示的。另外,对于数的符号(正号“+”和负号“-”)也只能用这两种相反的状态来区别。也就是说,只能用0或1来表示。1.4.1机器数与真值例1.正二进制数N1=+1011001,在计算机中可表示为:01011001符号位数值位例2.负二进制数N1=-1011001,在计算机中可表示为:11011001符号位数值位定义:一个数(连同符号)在机器中加以数码化后的表示形式,称为机器数;而把机器数所代表的实际值称为机器数的真值。机器数的符号在算术运算中,数据是有正有负的,将这类数据称为带符号数。为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。机器数中小数点的位置在机器中,小数点的位置通常有两种约定:一种规定小数点的位置固定不变,这时的机器数称为“定点数”。另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。1.4.2常见的机器数表示形式1.原码约定数码序列中的最高位为符号位,符号位为0表示该数为正数,为1表示该数为负数;其余有效数值部分则用二进制的绝对值表示。例如:真值x[x]原+0.10010.1001-0.10011.1001+100101001-100111001定点数又有定点小数和定点整数之分,下面分别给出定点小数和定点整数的原码定义。①若定点小数原码序列为x0.x1x2…xn,则[x]原=x0≤x<11-x-1<x≤0式中x代表真值,[x]原为原码表示的机器数。例如:x=+0.1011,则[x]原=0.1011x=-0.1011,则[x]原=1-(-0.1011)=1+0.1011=1.1011②若定点整数原码序列为x0x1x2…xn,则[x]原=x0≤x<2n2n-x-2n<x≤0例如:x=+1011,则[x]原=01011x=-1011,则[x]原=24–(–1011)=10000+1011=11011对于原码表示,具有如下特点:①原码表示中,真值0有两种表示形式。以定点小数的原码表示为例:[+0]原=0.00…0[-0]原=1-(-0.00…0)=1+0.00…0=1.00…0②在原码表示中,符号位不是数值的一部分,它们仅是人为约定(“0为正,1为负”),所以符号位在运算过程中需要单独处理,不能当作数值的一部分直接参与运算。带符号数的原码、反码、补码表示1.原码:正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。当机器字长为8位二进制数时:X=+1011011[X]原码=01011011Y=+1011011[Y]原码=11011011[+1]原码=000000
本文标题:第1章数据在计算机中的运算及表示形式.
链接地址:https://www.777doc.com/doc-2154116 .html