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

下载本文档

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

文档简介

1、第2章 数的故事内容提要u计数方法u数的表示u数的运算u计算机中的二进制数一、计数方法u我们熟悉的计数法p十进制计数p时间、日期计数p天干地支p八卦p一、计数方法u各种计数法是可以互相转换的比如:p阿拉伯数字:13p罗马数字:XIIIp中文数字:壹拾叁p天干地支:甲丑二、数的表示u基数和指数以十进制数为例32405=3x104+2x103+4x102+0 x101+5x100十进制数的基数(或底数)为0、1、2、3、十进制数的每位数字的权值不同,权是10的指数,从右至左依次为0、1、2、3二、数的表示u每一个基数用一个数码符号表示u数的表示(数码)p阿拉伯数:0、1、2、3、4p罗马计数:I、

2、II、III、IV、V、X、p汉语中的数字:零、壹、伍、拾、p二、数的表示u“零”的问题p阿拉伯数:0、10、100、p汉语中的数字:零、拾、佰、仟p天干地支:没有零p罗马数字:没有零二、数的表示u0是什么都没有吗?p计数功能:0 即 没有p标记功能:如0C、海拔高度u0 1吗?p一般地,数字 01p标记 0 没有大小p有时候,0可能大于1,比如数字电路中用0表示高电平,而用1表示低电平二、数的表示u进位计数法p罗马计数法不是进位计数法,进位没有意义p十进制数 32405=3x104+2x103+4x102+0 x101+5x100p十六进制数A20F=Ax163+2x102+0 x161+F

3、x160p二进制数110101=1x25+1x24+0 x23+1x22+0 x21+1x20二、数的表示如果把10n理解为“n个10的乘机”u如何理解100=1?u能理解10-1=?u可以理解20、2-1、2-2、吗?三、数的运算u进位制运算算术运算p加法:逢十(二、十六)进一p减法:借一当十(二、十六)u如何计算大数加、减法?p需要死记硬背吗?p灵活运用规则三、数的运算u无进位运算布尔运算p逻辑运算是一种最基本的运算p可用布尔运算表示与01000101或01001111异或01001110四、计算机中的二进制数u计算机中为什么使用二进制数?p巴贝奇的差分机使用十进制p冯诺依曼计算机采用二进

4、制l运算规律简单l实现容易(设备部件造价低)l可实现布尔运算p有没有不足?四、计算机中的二进制数u数值转换方法p十进制转化为二进制p二进制转化为十进制p二进制转化为八进制、十六进制p八进制、十六进制转化为二进制四、计算机中的二进制数u符号位p计算机的字若字长为8,则35的内存形式为00100011若字长为16,则为0000000000100011p符号位将字的最高位作为符号位,0表示正数,1表示负数四、计算机中的二进制数u原码p符号位表示正负数,其他位是数的绝对值对应的二进制数若字长为8,则35的原码为00100011-35的原码为10100011p利用原码能实现算术运算吗?p0的原码是什么?

5、“-0”问题四、计算机中的二进制数u反码p对于原码,若符号位为0,则其他位不变,若符号位为1,则其他位取反,得到该原码的反码35的反码为00100011-35的原码为11011100p利用反码能实现算术运算吗?p“-0”问题依然存在四、计算机中的二进制数u补码p整数的补码和反码相同,负数的补码是反码在最低位加1得到的35的补码为00100011-35的补吗为11011101p利用补码能实现算术运算吗?p0的补码是什么?“-0”问题还存在吗?四、计算机中的二进制数u求补码的原码(真值)p可以先把补码转化为反码再转化为原码p将补码当作“原码”,按照相同的方法求“反码”和“补码”,该“补码”就是原码

6、p这一特性极大地节省了部件成本四、计算机中的二进制数u一个神奇的数p若字长为8,则原码有0127、-0-127共256个,反码也有256个,他们都有一个特殊的“-0”p补码没有“-0”,难道只有255个数吗?p10000000是谁的补码?p答案:-128。因此补码的256个数是-128127练习u假设计算机的字长为8,试用二进制补码的加法运算模拟计算67-149,给出计算过程u请给出以下整数的补码127、1、-1、-127、-128考考你之一1 2 3 4 998 999 1000(1)瓶子编号(2)编号用二进制表示瓶子编号对应二进制数定长二进制110000000001210000000001

7、031100000000119981111100110111110011099911111001111111100111100011111010001111101000(3)需要10只小白鼠(4)小白鼠只喝标记为1的瓶子中的水000000000100000000100000000011.111110011011111001111111101000(5)把死掉的小白鼠标出来(6)得到毒瓶子的编码0100110001 305 000000000100000000100000000011.111110011011111001111111101000考考你之一五、编程中的“0”u0有类型吗?p整数0、

8、小数0.0、字符0、字符串“”有什么区别?p变量的初值都是 0 吗?p一个没有初始化的变量的初值是多少?lBASIC、FORTRAN中的变量lC、JAVA中的变量五、编程中的“0”u除以0异常问题程序执行时,若除数为0,则出现异常u解决之道BASIC语言: ON ERROR GOTO Java语言:try . catch (e) .C语言:if ( div!=0) . else . 六、二进制数的乘法和除法u怎样计算二进制数的乘法?例:试计算1101与1011的乘积(假设字长为8)1101X 101111011101. 0000.1101.10001111结果为10001111可否用十进制验证

9、?思考:能编程吗?六、二进制数的乘法和除法u用加法和移位实现二进制数的乘法基本规则:要计算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六、二进制数的乘法和除法u怎

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

温馨提示

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

评论

0/150

提交评论