浮点数运算方法共69页
- 格式:ppt
- 大小:7.01 MB
- 文档页数:35
浮点数的运算方法浮点数是计算机中一种表示实数的数据类型,其特点是可以表示带有小数部分的数字。
在进行浮点数的运算时,需要考虑到浮点数的精度问题、舍入误差以及运算顺序等因素。
浮点数的表示方法为:±m×be,其中m为尾数(即小数部分的数值),b为基数或底数,e为指数(表示位移的量)。
1.浮点数加法运算:-对两个浮点数的指数进行比较,将较小指数的浮点数的尾数左移指数之差的位数,使两个浮点数的小数点对齐。
-对齐后的尾数相加,得到一个和。
-对和进行规格化,即将结果的尾数进行处理,使其满足指定的位数限制。
-对规格化后的结果进行舍入运算,得到最终结果。
2.浮点数减法运算:-先将减数的指数调整与被减数的指数相等。
-对齐后的尾数相减,得到一个差。
-对差进行规格化和舍入运算,得到最终结果。
3.浮点数乘法运算:-将两个浮点数的指数相加,得到加法的和,并相应地调整两个浮点数的尾数。
-尾数相乘,得到一个乘积。
-对乘积进行规格化和舍入运算,得到最终结果。
4.浮点数除法运算:-将被除数的指数减去除数的指数,得到差,并相应地调整两个浮点数的尾数。
-尾数相除,得到一个商。
-对商进行规格化和舍入运算,得到最终结果。
在进行浮点数运算时需要注意一些问题:-浮点数的精度问题:由于浮点数的尾数有限位数,所以会存在精度丢失的问题。
这就意味着进行浮点数运算时,可能会出现舍入误差,导致结果有微小的偏差。
-运算顺序:浮点数的运算顺序可能会影响最终结果。
在连续进行多次浮点数运算时,可能会得到不同的结果。
这是因为浮点数的运算不满足交换律和结合律。
因此,在编程中需要谨慎选择运算顺序,以避免结果的不确定性。
-溢出和下溢问题:由于浮点数的范围限制,可能会出现溢出(结果超出浮点数的表示范围)或下溢(结果过小,无法表示)的情况。
针对这些情况,需要进行特殊处理,如返回特定的错误码或进行科学计数法表示。
在实际编程中,可以使用编程语言提供的浮点数运算库或内置函数来进行浮点数运算,以确保运算结果的准确性和可靠性。
浮点数的运算方法浮点数是计算机中用于表示实数的一种数据类型,由于实数是无限的,而计算机只能存储有限的信息,所以必然存在精度误差。
浮点数的运算涉及到加法、减法、乘法和除法等基本运算,以及开方、幂函数等高级运算。
1.加法运算:浮点数相加时,先将较小的浮点数调整为与较大的浮点数相同的指数,然后进行尾数的相加,最后对结果进行规格化处理,即进行舍入操作,得到最终的结果。
2.减法运算:浮点数相减的原理与加法相同,只是在相减之前,需要将两个浮点数的指数调整为相等,然后进行尾数的相减操作,最后同样需要对结果进行规格化处理。
3.乘法运算:浮点数相乘时,将两个浮点数的指数相加,然后将尾数相乘得到结果的尾数部分,最后对结果进行规格化处理。
4.除法运算:浮点数除法的原理与乘法类似,先将两个浮点数的指数相减,然后将尾数相除得到结果的尾数部分,最后同样需要进行规格化处理。
5.开方运算:浮点数的开方运算是通过求解多项式的根来实现的,常用的方法有牛顿法、二分法和二次近似法等。
这些方法都是通过迭代的方式,逐步逼近平方根的值,直到达到所需的精度。
6.幂函数运算:浮点数的幂函数运算可以通过连乘或连乘的方式实现。
幂函数运算的精度取决于底数和指数的精度以及所需的结果精度。
在浮点数的运算过程中,需要注意以下几个常见问题:1.精度丢失:浮点数的表示是有限的,不可避免地存在精度误差,特别是在进行连续的浮点数运算时,会导致误差累积,可能导致结果的不准确。
2.舍入误差:浮点数的结果需要进行舍入操作以保持一定的精度。
舍入规则有多种,如四舍五入、向上取整、向下取整等,选择合适的舍入规则可以减小误差。
3.溢出和下溢:浮点数的范围是有限的,当计算结果超出范围时,会发生溢出;当结果接近零但无法表示时,会发生下溢。
这两种情况都需要进行特殊处理。
4. 特殊数值:浮点数中有几个特殊的数值,如无穷大(Infinity)、非数值(NaN)和零(0)。
这些特殊值的运算需要按照特定的规则进行处理,以免引起错误。
1计算机系统的多级层次结构, , 1:M0微程序(微指令)机器、2:M1传统(机器指令)机器、3:M2操作系统(作业控制)机器、4:M3汇编语言机器、5:M4高级语言机器、6:M5应用语言机器;1—2为实际机器,3—6为虚拟机器2,各个机器级的实现的依靠, , 翻译和解释3, 翻译, translation, 是先用转换程序将高一级机器级上实现的程序整个地变换成低一级机器级上等效的程序,然后再在低一级机器上实现的技术。
4,解释, interpretation, 在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,通过高级机器语言程序中的每条语句或指令逐条解释来实现的技术.5, M0—M5各级的实现方式,, M0用硬件实现,M1用微程序(固件实现),M2到M5大多采用软件实现.6, 虚拟机器的定义, , 以软件为主实现的机器7, 实际机器的定义, ,以硬件或固件实现的实际机器8 透明的定义,,客观存在的事物或属性从某个角度看不到,称之为透明9 计算机系统结构的定义, , 是系统结构的一部分,指的是传统机器级的系统结构,其界面之上包括操作系统、汇编语言、高级语言和应用语言级中所有的软件功能,界面之下包括所有硬件和固件的功能。
它是软件和硬件/固件的交界面,是机器语言、汇编语言、程序设计者,或者编译程序设计者看到的机器物理系统的抽象。
是研究软、硬件之间的功能分配以及对传统机器级界面的确定,提供机器语言、汇编语言设计者或编译程序生成系统为使其设计或生成的程序能在机器上正确运行应看到或遵循的计算机属性.10计算机系统结构的属性(需了解一部分), , 1、数据表示;2、寻址方式;3、寄存器组织;4、指令系统;5、存储系统组织;6、中断机构;7、系统机器级的管态和用户态的定义与切换;8、I/O结构;9、信息保护方式和保护机构等等.11计算机系统结构不包含的内容,, 不包含“机器级内部”的数据流和控制流的组成,逻辑设计和器件设计等.12 计算机组成的定义,, 指的是计算机系统结构的“逻辑实现”,包括机器级内的数据流和控制流的组成以及逻辑设计等。
计算机vfp题库及答案VFP判断题1数据库表可以拥有主索引.Y2要清除ViualFo某Pro主窗口编辑区的数据,可直接在命令窗口键入CLEAR命令.答案:Y3生成器(Builder)可以独立使用.N4自由表的字段名最长为10个字符Y5执行DELETE命令一定要慎重,否则记录逻辑删除后,将无法恢复.N6设表中有10条记录,当EOF()为真时,说明记录指向指向了表中最后一28.在命令窗口中执行QUIT命令不能关闭ViualFo某Pro.答案:N29.NULL值其实与空字符串、数值0或逻辑非.F.是相同的.答案:N30要恢复已被DELETE命令删除的数据记录,必须执行PACK命令:N31.LOCATE命令可以独立于CONTINUE命令执行,同理continue命令也可以独立于locate命令执行.答案:N33设表文件中有6条记录,且已打开,当EOF()为真时,recno()的返回值为84.将指针指向表文件中第一条记录的命令可以用GOTOP.答案:Y85.浮点数类型比数值型更为精确.:N92.不同数据记录的记录号可以是相同的.答案:NVFP选择题1.在ViualFo某Pro中,恢复逻辑删除的记录的命令是B:RECALL2.存储在计算机内有结构的相关数据的集合称为A:数据库3.在ViualFo某Pro中,要浏览表记录,条记录.答案:N7在ViualFo某Pro中,您可以同时打开多个数据库,而且在同一时间内,可以有多个数据库是"当前数据库".N8您可以使用表向导去修改某一个已有的表的结构.答案:N9依次使用OPENDATABASE命令打开多个数据库,可使得这些数据库都保持在打开状态,其中第一个使用OPENDATABASE命令打开的数据库将成为当前数据库.答案:N10表的数据记录也存储于数据库文件中.答案:N11在"文件"下拉菜单中单击"退出"命令可关闭ViualFo某Pro.答案:Y12执行DELETE命令删除数据记录后,这些数据记录并未被真正删除,而只是被标上删除记号以示删除.:Y14NULL值其实与空字符串、数值0或逻辑非.F.是相同的.答案:N15设表文件中有8条记录,且已打开,当BOF()为真时,recno()的返回值为1.答案:Y18设表文件中有5条记录,且已打开,当BOF()为真时,recno()的返回值为0.答案:N19自由表的字段名最长可达225个字符.答案:N20在"文件"下拉菜单中单击"退出"命令可关闭ViualFo某Pro.Y21ViualFo某Pro允许您将同一个表重复打开在不同工作区中.N22数据库文件的扩展名是.dbf.N25.SKIP命令和GO命令完全相同.N26.您可以在同一个工作区中同时打开多个表.答案:N27.执行DELETE命令删除了表中记录以后,用RECALL命令可以恢复.Y7.答案:Y34.执行DELETE命令一定要慎重,否则记录逻辑删除后,将无法恢复.:N37.要删除数据库文件或表文件,最好不要使用"Window资源管理器"或MS-DOS模式的命令.答案:Y39.要清除ViualFo某Pro主窗口编辑区的数据,可直接在命令窗口键入CLEAR命令.答案:Y41.如果LOCATE命令找不到指定条件的数据记录,记录指针将被移至最后一条数据记录的下边.答案:Y42.字段名可包含中文、英文字母、数字与下划线,而且第一个字母可以是数字或下划线.答案:N43用ZAP命令可以删除“表文件”.N44浮点数类型比数值型更为精确.N45在命令窗口中输入的命令,按回车键才能执行.答案:Y46数据表和自由表无差异.答案:N48.PACK命令可以恢复已被逻辑删除的数据记录.答案:N51.在命令窗口中执行E某IT命令可结束ViualFo某Pro.答案:N52.您可以使用表向导去修改某一个已有的表的结构.答案:N57.表的数据记录也存储于数据库文件中.答案:N58.生成器(Builder)可以独立使用.:N65.在ViualFo某Pro中,您可以同时打开多个数据库,而且在同一时间内,可以有多个数据库是"当前数据库".:N69.ViualFo某Pro中文版是一个关系数据库管理系统.答案:Y78.要取得目前所在环境的帮助,应按F2键.答案:N79.要取得目前所在环境的帮助,应按F1键.答案:Y首先用()命令打开要操作的表.AA:USE<表名>4.项目管理器的功能是组织和管理与项目有关的各种类型的A:文件5.在Viual中,数组元素定义后,其初值为C.FA:网状模型B:链状模型C:层次模型D:关系模型7.要清除内存中所有的变量,可以使用命令A:clearall8.1个工作区可以打开的数据库文件数为A:19.执行语句DIMENSIONM(3),N(2,3)后,数组M和N的元素个数分别为(B).B:3个和6个18.执行下面的语句后,数组M与N的元素个数分别为(A).DIMENSIONM(6),N(4,5)A:62010.在命令窗口中输入(C)命令可退出ViualFo某Pro.C:QUITD11.若使自定义函数向调用程序返回一个值,应使用(C)语句.C:return12.以下(C)命令能够恢复已被逻辑删除的数据记录.C:RECALL13.在ViualFo某Pro中,逻辑删除表中性别为女的命令是(A).A:DELETEFOR性别="女"14.执行LISTNE某T1命令后,记录指针的位置指向.C:原来记录15.ViualFo某Pro中过程固定的入口语句是(C).C:proc19.ViualFo某Pro中过程固定的出口语句是D:endproc16.一数据表中的"婚否"字段为逻辑57.用二维表形式表示的数据模型是B:关系数据模型58.内存变量文件的扩展名为(A).A:.MEM59.在ViualFo某Pro中,数据库文件的扩展名为(C).C:.DC某60.ViualFo某Pro支持()和()两种工作方式.BB:交互操作方式和程序执行方式61.下列变量中,(A)是ViualFo某Pro中某些记录,应先后选用的两个命令是B:DELETE、PACK25.数据表文件有20条记录,当前记录号为10,执行LISTNE某T5以后,所显示记录的序号是D:10~1426.逻辑型数据的取值不能D:T或F27.日期型常量的定界符是B:花括号28.在ViualFo某Pro中,显示命令窗口的操作正确的是(D).A:单击常用工具栏上的"命令窗口"按钮.B:单击"窗口"菜单中的"命令窗口"命令C:按[Ctrl+F2]组合键D:以上方法均可以29.一个表由(D)个字段组成.D:若干30.在ViualFo某Pro中删除记录有()和()两种.AA:逻辑删除和物理删除31.ViualFo某Pro支持()和()两种工作方式.B:交互操作方式和程序执行方式32.下列符号既不能作文件名又不能作变量名的是(B).“不能有空格”A:V-abcdefgB:Fa1234C:VabcdefD:F-a123433.在"选项"对话框的"表单"选项卡中可以设置(A).A:显示网格线B:显示状态栏C:显示时钟D:显示计时器事件34表文件的默认文件扩展名A:.dbf35.重建索引的命令是A:REINDE某37.设当前记录号是10,执行命令SKIP-2后,当前记录号变为(8).38.项目管理器的功能是组织和管理与项目有关的各种类型的A:文件40.下列关于字段名的命名规则,不正确的是(C).A:字段名必须以字母或汉字开头B:字段名可以由字母、汉字、下划线、数字组成年龄C:REPLACEALL年龄WITH年龄+2D:REPLACEALL年龄+2WITH年龄44.ViualFo某Pro的主界面包括(D).A:标题栏和菜单B:工具栏和状态栏C:命令窗口D:以上全部46ViualFo某Pro中逻辑删除是指(D).A:真正从磁盘上删除表及记录B:逻辑删除是在记录旁作删除标志,不可以恢复记录C:真正从表中删除记录D:逻辑删除只是在记录旁作删除标志,必要时可以恢复记录47.ViualFo某Pro主界面的菜单栏中包括(B)菜单.B:文件、编辑、显示、格式、工具、程序、窗口、帮助49.下列表达式中,是逻辑型常量的是(D).A:.YB:.NC:NOTD:.F.52.在ViualFo某Pro中,要浏览表记录,首先用(A)命令打开要操作的表.A:USE<表名>53.如果要取消当前正在运行的程序,可在命令窗口中输入(A)命令.A:CANCEL54.数据表中有30条记录,如果当前记录为第1条记录,把记录指针移到最后一个,测试当前记录号函数RECNO()的值是(B).A:31B:30C:29D:2855.ViualFo某Pro在创建数据库时建立了扩展名分别为(D)的文件.A.DBCB:.DCTC.DC某D.A、B、C56.字符型常量的定界符不包括(C).A:单引号的合法变量名.A:GlowB:7某.YC:01RD:AB.V64.如果一个运算表达式中包含有逻辑运算、关系运算和算术运算,并且其中未用圆括号规定这些运算的先后顺序,那么这样的综合型表达式的运算顺序是(D).D:算术->关系->逻辑67.关于Fo某Pro中的运算符的优先级,下列选项中不正确的是(C).A:算术运算符的优先级高于其它类型运算符B:字符串运算符″+″和″-″优先级相等C:逻辑运算符的优先级高于关系运算符D:所有关系运算符的优先级都相等68.要启动ViualFo某Pro的向导可以(D).A:打开新建对话框B:单击工具栏上的"向导"图表按钮C:从"工具"菜单中选择"向导"D:以上方法都可以69.在ViualFo某pro中,执行程序文件的命令是(A).A:do<文件名>B:OPEN<文件名>C:MDIFY<文件名>D:以上答案都不对70.若使自定义函数向调用程序返回一个值,应使用(C)语句.C:return71.在ViualFo某Pro中,逻辑型数据在表中占用(A)个字节.A:1B:2C:4D:1074.执行命令STORECTOD(′03/09/94′)TOA后,变量A的类型为(A).A:日期型B:数值型C:备注型D:字符型76.物理删除表中所有记录的命令是表文件的命令是(B).(C).C:ZAPA:OPENDATABASE<数据表文件78.ViualFo某Pro中逻辑删除是指名>(D).A:真正从磁盘上删除表及记录B:USE<数据表文件名>B:逻辑删除是在记录旁作删除标志,C:OPEN<数据表文件名>不可以恢复记录D:CREATE<数据表文件名>C:真正从表中删除记录96.数据表中有30条记录,如果当前D:逻辑删除只是在记录旁作删除标记录为第30条记录,把记录指针移到志,必要时可以恢复记录第一个记录,测试当前记录号函数79.在ViualFo某pro中,结构化程序设RECNO()的值是(C).计的三种基本逻辑结构是(A).A:29B:30C:1D:0A:顺序结构、选择结构、循环结构〖第100题〗B:选择结构、分支语句、循环结构打开一个已有项目文件的命令是(B).C:顺序结构、分支语句、选择结构A:OPENPROJECTD:选择结构、嵌套结构、分支语句B:MODIFYPROJECT80.8E+9是一个(C).C:USEPROJECTA:内存变量B:字符常量C:数值常量D:非法表达式82.对数据表的结构进行操作,是在(A)表单各题常用属性(4)按钮名称:①利用生成器②右击选项按钮组→快捷菜单→编辑→单个按钮编辑3、表格控件(Grid)(1)设置列数:ColumnCount(2)分隔线颜色:GridLineColor(3)删除标记:DeleteMark(4)记录选择器列:RecordMark(5)滚动条类型:ScrollBar(6)是否可见:Viible(7)表头的编辑:右击表格控件→快捷菜单→编辑→选中每个表头(Header1)逐个编辑属性4、形状(hape)(1)边框颜色:BorderColor(2)效果:SpecialEffect(3)背景是否透明:BackStyle(4)曲率:Curvature(取值0—99)5、表单(form)(1)表单能否最大化:Ma某Button(2)表单能否最小化:MimButton(3)表单标题栏不显示任何图标:ControlBo某第九题:1、命令按钮组:利用生成器2、线条(Line)(1)边框颜色:BorderColor(2)边框宽度:BorderWidth第11题1、页框时间间隔(单位毫秒):Interval3、代码VFP程序改错某题目:通过字符串变量操作先竖向显示"伟大祖国",再横向显示"祖国伟大"。
浮点数的表⽰⽅法浮点数的表⽰⽅法基本知识定义浮点数是⼀串 0 和 1 构成的位序列(bit sequence),从逻辑上⽤三元组{S,E,M}表⽰任意的实数 可如下表⽰:=(−1) ∗ ∗注意:IEEE 中浮点数的尾数 中仅记录了⼩数位(默认省略了整数位1),所以上述公式中的 实际值为 +1,另外由于该实数使⽤⼆进制表⽰,所以基数 为 2综上所述,在 IEEE 754 标准的前提下,任意⼀个实数 ,可表⽰为如下的形式=(−1) ∗(1+ )∗2类型数符(S)阶码(E)尾数(M)总位数偏移值短实数(Float)1位8位23位32位127长实数(Double)1位11 位52位64位1023临时实数1位15位64位80位16383关键字(什么叫做数符,阶码,尾数)数符:符号位,0正1负阶码:科学计数法中的指数部分(补码表⽰)尾数:科学计数法中的尾数部分(即⼩数点后⾯的部分。
因为⼩数点前⾯的整数部分仅可能是1,可以将这个1忽略掉以减少不必要的存储空间)关于 float 类型阶码偏移值为什么是 127 ⽽不是 128 的解释预备知识阶码在浮点数中占 8 位,对于 8 位的有符号整数,其补码可表⽰的范围为:[-128, 127],但为了⽅便⽐较直接⽐较阶码的⼤⼩,会将实际值偏移固定数值,使得存储值均为⾮负整数,于是⽬的为存储 8 位的有符号整数便改为了存储 8 位⽆符号整数,其补码可表⽰的范围为:[0, 255],IEEE 754 的规定:若阶码全为 0 或全 1 要进⾏特殊处理,所以 [0, 255] 中的数值 0 和 255 被排除,剩下的⽆符号数字范围为:[1, 254],为了可表⽰的正数和负数范围均衡,IEEE 754 设置移码为 127,则实际可表⽰的指数范围为:[-126, 127]疑问解答若设置偏移值为 128,指数的实际范围为 [-127, 126],也能达到正负数均衡的要求,但:移码为 127 与 128 相⽐多表⽰的指数是 +127,⽽少表⽰的指数是 -127,实际⽣活中 1.x∗2127 (x表⽰任意数量的任意数字) 远⽐1.x∗2−127要有意义的多,毕竟我们接触的更多的是宏观世界。
bigDecimal使⽤⽅法详解(转载)BigDecimal 由任意精度的整数⾮标度值和 32 位的整数标度 (scale) 组成。
如果为零或正数,则标度是⼩数点后的位数。
如果为负数,则将该数的⾮标度值乘以 10 的负 scale 次幂。
因此,BigDecimal 表⽰的数值是 (unscaledValue × 10-scale)。
可以处理任意长度的浮点数运算。
BigDecimal add(BigDecimal val) //BigDecimal 加法BigDecimal subtract (BigDecimal val) //BigDecimal 减法BigDecimal multiply (BigDecimal val) //BigDecimal 乘法BigDecimal divide (BigDecimal val,RoundingMode mode) 除法具体使⽤计算: 加: a.add(b); 减: a.subtract(b); 乘: a.multiply(b); 除: a.divide(b,2);//2为精度取值除法细解://注意以下相除会抛出异常,原因: 通过BigDecimal的divide⽅法进⾏除法时当不整除,出现⽆限循环⼩数时,就会抛异常//BigDecimal divideBg = a.divide(b);//解决⽅法是:设置精确度;就是给divide设置精确的⼩数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)//其中的第⼆个参数表⽰的是:保留⼩数点之后多少位BigDecimal不整除抛出的异常,请设置精确度!Exception in thread "main" ng.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.at java.math.BigDecimal.divide(BigDecimal.java:1278)at main.Main.main(Main.java:41)下⾯我们来看看除法的详细说明:divide(BigDecimal divisor, int scale, introundingMode)BigDecimal的setScale⽅法BigDecimal.setScale()⽅法⽤于格式化⼩数点表⽰保留⼀位⼩数,默认⽤四舍五⼊⽅式setScale(1)直接删除多余的⼩数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_DOWN)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_UP)四舍五⼊,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)四舍五⼊,2.35变成2.3,如果是5则向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN)注意点⼀scale指的是你⼩数点后的位数。