第四讲-计算机科学中的.ppt
《第四讲-计算机科学中的.ppt》由会员分享,可在线阅读,更多相关《第四讲-计算机科学中的.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12/22/20221第二章计算机科学中的常用数制2.1m进制正整数的表示方法任何一个n位m进制(m=2,3,4,)正整数,可记为dn1dn2d2d1d0其中,dkSm(k=0,1,3,n1),Sm是一个由m个符号组成的集合,这m个符号依次表示从0计数到m1。根据习惯,把最左边的符号dn1称为该m进制数的最高位,而最右边的符号d0称为最低位,该数所对应的十进制数用下式计算:疥毁际霸苗裕漾浪驶端彬瓷韩枝撞娱世垢俗性诬巍温膊锌燃厄纪蜀酱铭苹第四讲-计算机科学中的第四讲-计算机科学中的12/22/202222.1.1十进制(Decimal)正整数S10=0,1,2,3,4,5,6,7,8,9例:一个
2、5位十进制正整数(13905)10对应的数值为1104+3103+9102+5=13905在计算机科学中,经常用后缀字母D表示十进制数,如:13905D。由于十进制一般是默认的进制系统,常常缺省后缀字母,即写成13905。十进制英文缩写为:DEC康懒困禹别誉监砧婉丝版多沿挥荷揍救窖柬洁坞京侮四腺撅粱无插庙狭炮第四讲-计算机科学中的第四讲-计算机科学中的12/22/202232.1.2二进制(Binary)正整数S20,1例:一个5位二进正整数(10101)2对应的数值为124+122+1=21表示二进制的后缀字母为B,本例中,该二进制数也可以表示为10101B。二进制的英文缩写为:BIN计算机
3、硬件为什么采用二进制来设计?答:运算简单,硬件易于实现,成本低。采用二进制的缺点是什么?答:人工书写记录不方便,因为数值稍大,位数很多。耶鞠贪惟觅饲唱琐标惯琴庆拌丘关愁诚钝爸棉埔兄扶恐飞垛挑谈旁鸣泅阳第四讲-计算机科学中的第四讲-计算机科学中的二进制数的一些术语:bit:每个二进制位Byte:8个连续记录(书写)或者存储的二进制位定长二进制数:用固定长度表示的二进制数。当二进制数的实际位数低于该固定长度时,高位用0占位。例如:十进制数12在8位和16位ALU中分别表示为:(00001100)2(0000000000001100)2两个n位(n1)定长二进制数进行运算,运算结果实际位数如果大于n
4、,称为溢出。喧行坐地糯挡歌庶掐务啄糠烹那钱深笺殖巍钝比账帛厂庞舌息亚浦壮落着第四讲-计算机科学中的第四讲-计算机科学中的12/22/202252.1.3八进制(Octal)正整数S80,1,2,3,4,5,6,7例:一个4位八进正整数(3057)8对应的数值为383+58+7=1583表示八进制的后缀字母为O,本例中,该八进制数也可以表示为3057O。八进制的英文缩写为:OCT赁硕袋迷撬膳嚎啪靳涪坝乃琉慨苟打崔蔼婚峦逮套炳帆祖犯芜旷捣虾强济第四讲-计算机科学中的第四讲-计算机科学中的62.1.4十六进制(Hexadecimal)正整数S160,1,2,3,4,5,6,7,9,a(A),b(B)
5、,c(C),d(D),e(E),f(F)说明:英文字母大小写无区别;a,b,c,d,e,f依次表示十进制数10,11,12,13,14,15。例:一个4位十六进正整数(A1BC)16对应的数值为10163+1162+1116+12=41404表示十六进制的后缀字母为H,本例中,该十六进制数也可以表示为A1BCH。十六进制的英文缩写为:HEX篷劫咋蕴回处希全俊薯聊床霄乘秤侈所崩齐涩拟揩陷卵彰浦海炉彤肖兹捐第四讲-计算机科学中的第四讲-计算机科学中的12/22/202272.2.1十进制正整数化为其它m进制数算法:m连除取余(1)记待转换的十进制正整数为a;(2)用m除a,即a/m;将整数商仍记为
6、a;用m进制符号记录余数;(3)若a=0,则按余数产生的相反次序书写余数,可得到对应的m进制数;算法停止。(4)若a0,则转至步骤(2)。2.2四种进制正整数的相互转换乃筐坠咆居诲住蜡林腻孜哭敏侨字胆架抢痕胚腰蜂弯舵娃乔蛰稀蹭惊双乳第四讲-计算机科学中的第四讲-计算机科学中的例2-1将十进制数479用上述“m连除取余”法化为二、八、十六进制数。进制越大,表示位数越少,所需的除法步骤相应越少。篇了简笨郸有绦鸦秤康烽兰锤滇潭英搁斗膏铃部娱鄂较汤符樊闺谁溅塘弱第四讲-计算机科学中的第四讲-计算机科学中的因为23=8,因此刚好每三个二进制位对应一个八进制位;而24=16,有四个二进制位对应一个十六进制
7、位这样的简单互换关系,如下表所示。把八进制数或者十六进制数化为二进制数的例子如:上面示例中,下横线以及横线下方的数字,清楚地标注了三个比特对应一位八进制数和四个比特对应一位十六进制数的映射关系。2.2.2二进制与八、十六进制正整数互化恶基截橙摧刁虞档赞酌兵学拿僻侥板听燃绕冬洪矣琢豫撰郸镜叶钡傈薄虫第四讲-计算机科学中的第四讲-计算机科学中的二进制与八进制、十六进制的对应关系猜哎诡怎砚椎京界蓑男跨彭脓得薄婴硫陈泉冀境砰抵寞缺拔什骄汛牟嗽翌第四讲-计算机科学中的第四讲-计算机科学中的将二进数化为八进制数时,只需从最低位开始,从右向左,每三个二进制位一组,写出对应的八进制符号。当二进制数的高位不足三
8、位时,前面可以添0占位。例如:将二进数化为十六进制数时,只需从最低位开始,从右向左,每四个二进制位一组,写出对应的十六进制符号。当二进制数的高位不足四位时,前面可以添0占位。例如:油宪取硷嘎墩曙矣咏陡饱乙汪炉普佳锅砒海狮祭楞篡茨荆柿歹宇雀枣漂贿第四讲-计算机科学中的第四讲-计算机科学中的计算机科学中采用八、十六进制的目的是什么?答:用于简化二进制的表示,一是因为八进制或者十六进制数很容易化为二进制数,二是因为八进制或者十六进制书写简短。总之,在计算机科学中,二进制一般用八进制,特别是十六进制来表达。十六进制最常用是因为计算机中的ALU以及存储单元的长度一般以字节为单位,而一个字节有8bits,
9、正好可以表示为两位十六进制数。将十进制正整数快速化为二进制的方法是什么?答:先化为八进制或者十六进制(所需的除法步骤少),然后将十六进制化为二进制(3位或者4位一组对应关系)。鞭兼圾或骚珍杀阔围弦渣懒变健带女辫侍寄成完蹋植飞鸯姿捐桅果讨群武第四讲-计算机科学中的第四讲-计算机科学中的例2-2把十进制数14941化为二进制数。m商余161494193313(D)585310(A)03149413A5DH=0011101001011101B澎黍涅信桌汐号筐孽毒枝霞摆噶室盐饼茂睦挣柏芒宗像岂层此瓮懊音退趟第四讲-计算机科学中的第四讲-计算机科学中的2.3m进制小数带小数的m进制正数可记为:dn1dn
10、2d1d0.b1b2b3其中di,bjSm,i=0,1,n1,j=1,2,3,。dn1dn2d2d1d0是该数的整数部分,而b1b2b3则是该数的小数部分。这样的m进制小数对应的十进制真值为:偶郴臃讲止悸崎悸崖响芦孔涪诞楼吩婴冕菩挚朋勿登愿残裁琐着孕豺床迢第四讲-计算机科学中的第四讲-计算机科学中的把十进制小数化为m进制整数的方法是:先用“m连除取余”法把整数部分化成m进制整数,然后把小数部分用“m连乘取进位”的方法化成m进制小数。“m连乘取进位”的具体步骤是:(1)记小数的整数部分为0,得只含小数部分的小数a;(2)计算am,用m进制符号记录乘积的整数部分(进位);乘积的整数部分(进位)清0
11、,记乘积的小数部分为新的a;(3)若a=0或者已经达到需要的小数位数(精度)时,停止算法,按进位的产生顺序书写,得m进制小数部分;否则,转到(2),继续上述步骤。宠醚卉锌渴蛔居另丑雏组饮抱违联咐讹文掌秩隋椎汕蹦哺味崇院友麓溢踊第四讲-计算机科学中的第四讲-计算机科学中的例2-3把十进制数0.75化为二进制、八进制、十六进制形式。解:(1)把0.75化为二进制小数,过程如下:进位(整数部分)小数部分m0.75210.510.00.75=(0.11)2根酪围逾赃汗眼杰迸妆浸谷韵们臻迄砚扳紫叁晶忌眠梁凤肺毋侄塔群峭萎第四讲-计算机科学中的第四讲-计算机科学中的(2)把0.75化为八进制小数,过程如下
12、:进位(整数部分)小数部分m0.75860.00.75=(0.6)8(3)把0.75化为十六进制小数,过程如下:进位(整数部分)小数部分m0.7516(C)120.00.75=(0.C)16问题与思考:对于小数部分,二进制与八、十六进制有怎样的对应关系?纯垃溶尚锡懈薯崭贝俯千番完住岳栗徊集咕试膏剃糟启裁古横皮导匡绍巧第四讲-计算机科学中的第四讲-计算机科学中的例2-4把十进制数5.3化为二进制小数形式。解:第一步:将5.3的整数部分化为二进制整数,有5=(101)2第二步:把5.3的小数部分化为二进制形式,过程如下:进位(整数部分)小数部分m0.3200.610.200.400.810.6(以
13、下重复)(5.3)10=(101.0100110011001)2泅窒藐板培遇酒袱公赵矗哨苫谤疹灾澈羹挺亢鞠炎休淑擦纫衰荚毫掖桅襄第四讲-计算机科学中的第四讲-计算机科学中的小数的存储表示误差:因为0.3的二进制表示中含有无限多比特,我们在存储时不可能全部都采纳,只能取达到一定精度的位数,这是因为计算机存储器或者ALU中的二进制数一定是固定的有限长度。如果我们只取小数点后面8位,则5.3=(101.01001100)2,该二进制数对应的十进制数真值为5.296875,这就存在一定的表示误差。用二进制形式表示十进制小数时,由于受到存储长度的限度,表示误差是难以避免的。尉雪范话锑粉阀旋裙邑概樱辙推繁
14、媒双形凶起彩小毅境鹏妊反拿领翟聂钟第四讲-计算机科学中的第四讲-计算机科学中的2.4整数的存储格式2.4.1整数的存储长度在程序设计语言以及数据库中存储的整数一般以字节为单位,常用的有8位(1byte)、16位(2bytes)、32位(4bytes),64位(8bytes)。如:Java程序语言中,整数类型有:byte、short、int、long4种,分别表示1、2、4、8字节有符号整数。VisualC+程序语言的数据类型中,char、short、int分别表示1、2、4字节有符号整数;unsignedchar、unsignedshort、unsignedint分别表示1、2、4字节无符号整
15、数。肤渊箍叮耍抨球斗挥揖泣次人雹立桨鹿妖匣盏套携隋现甚狐鞭执紊码化轻第四讲-计算机科学中的第四讲-计算机科学中的2.4.2无符号整数与有符号整数无符号整数存储的整数不含正负号,它只能表示正数和0。有符号整数存储的整数含符号信息,可以表示正、负数和0。如:Java程序语言中,全部整数数据类型都是有符号的,Java不支持无符号整数;C或C+语言中,整数分为有符号与无符号两种。嗣伎辈隆禽渠尔畜释坑蚊淀慧嘎挟罩碍戮浪乃凉颗颤表韶挫违岳瓜比砖肥第四讲-计算机科学中的第四讲-计算机科学中的3.有符号与无符号仅仅是程序的处理方式不同例如:8位无符号整数255与8位有符号整数-1(补码)的存储单元内容完全一样
16、,即存储单元的内容都是FFH(255)。这时,如果支持软件把它当作无符号数,它对应的十进制数为255;反之,如果支持软件把它当作有符号数处理,即补码处理,则根据补码表示法,它对应的十进制数为-1。无论什么样的数据存储格式(包括实数格式),无符号整数可以表示出存储器的存储状态。有时候,我们把定长表示的无符号整数称为机器数。蹋注奈碌主承足慰瞧偷爱销腑厨联昧铲摔祝籍钓佯秩轿豌炎军勒袱心坑像第四讲-计算机科学中的第四讲-计算机科学中的2.4.3多字节整数在字节存储器中的存储顺序对于字节存储器,由于每个存储单元只能存储8位二进制数,那么,8位以上整数(占用不只一个存储单元)在存储器中各单元的存储顺序是怎
17、样的呢?低位在前:按照内存地址增大的顺序,先存低位,再存高位高位在前:先存高位,再存低位。在IBM-PC系列微机中,大多数程序语言软件以及数据库软件采用的方式为低位在前,高位在后,因为IntelCPU的指令系统采用低位在前,高位在后的方式存取整数。伶沥蹭秸池倡机半馅蜂乎砖努喧根拓待看准愧炯藐咏汉雹顷涧仍瘟涅耘蒋第四讲-计算机科学中的第四讲-计算机科学中的例如:假定存储器每个存储单元只能存储8bit,则十进制数14941(3A5DH)若用VC+的int型整数表示,则该整数在内存中占用4个存储器单元(每个单元1字节),对应32位机器数可记为:00003A5DH,这4个单元的存储顺序为:5DH,3A
18、H,00H,00H(低位在前,高位在后);该数若用Java语言的long型整数表示,则对应的64位机器数可记为:0000000000003A5DH,8个单元的存储顺序为:5DH,3AH,00H,00H,00H,00H,00H,00H。5D3A0000地址增严准齐型繁禁砍付以猿禁害筐凛贤待至张贱潭斧前誊吨导陈庐畜郭浙景虽第四讲-计算机科学中的第四讲-计算机科学中的2.4.4无符号整数的存储格式就是定长正整数或者0。在内存中,无符号整数表示的实际整数值等于机器数。2.4.5有符号整数的三种表示法原码:n位原码最高位(符号位)1表示负数,0表示正数;余下的n-1位表示数值的绝对值。例如:75=(01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 计算机科学 中的
限制150内