程序与数学数的故事_第1页
程序与数学数的故事_第2页
程序与数学数的故事_第3页
程序与数学数的故事_第4页
程序与数学数的故事_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第2章数的故事内容提要计数方法数的表示数的运算计算机中的二进制数一、计数方法我们熟悉的计数法十进制计数时间、日期计数天干地支八卦……一、计数方法各种计数法是可以互相转换的比如:阿拉伯数字:13罗马数字:XIII中文数字:壹拾叁天干地支:甲丑二、数的表示基数和指数以十进制数为例32405=3x104+2x103+4x102+0x101+5x100十进制数的基数(或底数)为0、1、2、3、…十进制数的每位数字的权值不同,权是10的指数,从右至左依次为0、1、2、3……二、数的表示每一个基数用一个数码符号表示数的表示(数码)阿拉伯数:0、1、2、3、4……罗马计数:I、II、III、IV、V、X、…汉语中的数字:零、壹、伍、拾、………二、数的表示“零”的问题阿拉伯数:0、10、100、……汉语中的数字:零、拾、佰、仟…天干地支:没有零罗马数字:没有零二、数的表示0是什么都没有吗?计数功能:0即没有标记功能:如0°C、海拔高度……0<1吗?一般地,数字0<1标记0没有大小有时候,0可能大于1,比如数字电路中用0表示高电平,而用1表示低电平二、数的表示进位计数法罗马计数法不是进位计数法,进位没有意义十进制数

32405=3x104+2x103+4x102+0x101+5x100十六进制数A20F=Ax163+2x102+0x161+Fx160二进制数110101=1x25+1x24+0x23+1x22+0x21+1x20二、数的表示如果把10n理解为“n个10的乘机”如何理解100=1?能理解10-1=?可以理解20、2-1、2-2、…吗?三、数的运算进位制运算——算术运算加法:逢十(二、十六)进一减法:借一当十(二、十六)如何计算大数加、减法?需要死记硬背吗?灵活运用规则三、数的运算无进位运算——布尔运算逻辑运算是一种最基本的运算可用布尔运算表示与01000101或01001111异或01001110四、计算机中的二进制数计算机中为什么使用二进制数?巴贝奇的差分机使用十进制冯·诺依曼计算机采用二进制运算规律简单实现容易(设备部件造价低)可实现布尔运算有没有不足?四、计算机中的二进制数数值转换方法十进制转化为二进制二进制转化为十进制二进制转化为八进制、十六进制八进制、十六进制转化为二进制四、计算机中的二进制数符号位计算机的字若字长为8,则35的内存形式为00100011若字长为16,则为0000000000100011符号位将字的最高位作为符号位,0表示正数,1表示负数四、计算机中的二进制数原码符号位表示正负数,其他位是数的绝对值对应的二进制数若字长为8,则35的原码为00100011-35的原码为10100011利用原码能实现算术运算吗?0的原码是什么?“-0”问题四、计算机中的二进制数反码对于原码,若符号位为0,则其他位不变,若符号位为1,则其他位取反,得到该原码的反码35的反码为00100011-35的原码为11011100利用反码能实现算术运算吗?“-0”问题依然存在四、计算机中的二进制数补码整数的补码和反码相同,负数的补码是反码在最低位加1得到的35的补码为00100011-35的补吗为11011101利用补码能实现算术运算吗?0的补码是什么?“-0”问题还存在吗?四、计算机中的二进制数求补码的原码(真值)可以先把补码转化为反码再转化为原码将补码当作“原码”,按照相同的方法求“反码”和“补码”,该“补码”就是原码这一特性极大地节省了部件成本四、计算机中的二进制数一个神奇的数若字长为8,则原码有0~127、-0~-127共256个,反码也有256个,他们都有一个特殊的“-0”补码没有“-0”,难道只有255个数吗?10000000是谁的补码?答案:-128。因此补码的256个数是-128~127练习假设计算机的字长为8,试用二进制补码的加法运算模拟计算67-149,给出计算过程请给出以下整数的补码

127、1、-1、-127、-128考考你之一现有1000个装满水的一模一样的瓶子,已知其中只有一个瓶子里的水有毒,做实验的小白鼠只要喝一点儿有毒的水就会在一周以后死掉。问需要多少只小白鼠才能在一周内找出有毒的瓶子?1234…………9989991000(1)瓶子编号(2)编号用二进制表示瓶子编号对应二进制数定长二进制11000000000121000000000103110000000011………………9981111100110111110011099911111001111111100111100011111010001111101000(3)需要10只小白鼠(4)小白鼠只喝标记为1的瓶子中的水000000000100000000100000000011..............................111110011011111001111111101000⑩⑨⑧⑦⑥⑤④③②①(5)把死掉的小白鼠标出来(6)得到毒瓶子的编码

0100110001 →305000000000100000000100000000011..............................111110011011111001111111101000⑩⑨⑧⑦⑥⑤④③②①考考你之一如果只有8只小白鼠,时间不限,怎么找有毒的瓶子?需要多长时间?五、编程中的“0”0有类型吗?整数0、小数0.0、字符’\0’、字符串“”有什么区别?变量的初值都是0吗?一个没有初始化的变量的初值是多少?BASIC、FORTRAN中的变量C、JAVA中的变量五、编程中的“0”除以0异常问题程序执行时,若除数为0,则出现异常解决之道BASIC语言: ONERRORGOTO…Java语言: try{…..}

catch(e){….}C语言: if(div!=0){….}

else{….}六、二进制数的乘法和除法怎样计算二进制数的乘法?例:试计算1101与1011的乘积(假设字长为8)1101X101111011101.

0000..1101...10001111结果为10001111可否用十进制验证?思考:能编程吗?六、二进制数的乘法和除法用加法和移位实现二进制数的乘法基本规则:要计算A、B的乘积S,首先令S各位为0,从左到右顺序取B的一位,如果为0,则将S各位左移一位,如果为1,则将S与A相加后再将S左移一位,直到B最后一位六、二进制数的乘法和除法要计算1101与1011的乘积(假设字长为8):开始,A=1101,B=1011,S=00000000B的第1位是1,S+A=1101,移位S=00011010B的第2位是0,移位S=00110100B的第3位是1,S+A=01000001,移位S=10000010B的第4位(最后)是1,S+A=10001111六、二进制数的乘法和除法怎样计算二进制数的除法?例:试计算1010010除以111的商和余数即82/7=11余500001011111)01010010111...11010111.

1100111101六、二进制数的乘法和除法用减法和移位实现二进制数的除法设被除数为A、除数为B、商为Q、余数为R,Q和R初值为0。将A由左到右依次左移进入R,每次移位进入后比较R和B的值,如果R≥B,则将这一位的Q的值置1,然后从R中减去B(做补码加法运算),否则不做操作。Q与A移位同步进行。……直到A全部进入R单元为止。六、二进制数的乘法和除法令A=1010010,B=111,Q=R=0A左移1位进入R,A=010010,R=1,因R<B,Q=0A左移,A=10010,R=10,因R<B,Q=0A左移,A=0010,R=101,因R<B,Q=0A左移,A=010,R=1010,因R>B,R=R-B=11,Q=1A左移,A=10,R=110,因R<B,Q=10A左移,A=0,R=1101,因R>B,R=R-B=110,Q=101A左移,A空,R=1100,因R>B,R=R-B=101,Q=1011考考你某明星到大学里搞活动,场面异常火爆(人很多),但学生素质高,秩序井然。活动的组织者想知道到底来了多少人?你能帮他想想办法吗?考考你之二现有1000张1元纸币,请设法分装在10个信封中,要求能用这些信封组合出任意不大于

温馨提示

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

评论

0/150

提交评论