查看“软件设计师精讲 数据的表示 浮点数的表示”的源代码
←
软件设计师精讲 数据的表示 浮点数的表示
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV13U4y1E7oA/?p=6 === 考点3:浮点数的表示 === ==== 浮点的运算 ==== 浮点数表示: N=尾数*基数<sup>指数</sup> 以 1.25×10<sup>6</sup> 为例: 其中的“1.25”就是尾数,它是定点小数的形式; 基数部分,在二进制存储的时候,固定是等于2的,不会发生变化了; 指数部分,就是这里的乘幂,也叫作“阶码”。 阶码是定点整数,一般用移码表示; 基数在计算机中是不需要存储的; 尾数一般使用补码来表示的; 有一类特殊的标注:IEEE754,尾数可以用原码来表示。 给出 1.255×10<sup>10</sup> 和上面的 1.25×10<sup>6</sup> 作对比,1.255×10<sup>10</sup> 的数值范围更大,阶码可以影响数值表示的范围,阶码的位数越多,表示的范围就越大; 再来看尾数部分,尾数可以表示数值的有效精度,尾数越多,表示精度越高。 如果要对 1.25×10<sup>6</sup> 和 1.255×10<sup>10</sup> 进行加法运算的话: 首先,让它们的阶码对齐,我们叫做“对阶”,如果要求两个阶码一致——一种是让阶码保持为6,一种是让阶码保持为10。 如果阶码保持为6,1.255×10<sup>10</sup> 就要变成 12550 ×10<sup>6</sup>,再和 1.25×10<sup>6</sup> 相加之后还要重新调整阶码,才能保证前面的尾数是小数点前只保留1位,所以<u>这种形式不可取</u>。 我们在做“对阶”的时候,一般是“小数向大数看齐”,将 10<sup>6</sup> 扩展为 10<sup>10</sup> ,后面扩大了1万倍,乘法的另一部分就要缩小1万倍,1.25×10<sup>6</sup> 就变成 0.000125×10<sup>10,</sup> 接下来再对尾数进行加减运算,1.25×10<sup>6</sup> + 1.255×10<sup>10</sup> = 0.000125×10<sup>10</sup> + 1.255×10<sup>10</sup> = 1.255125×10<sup>10</sup>,以上就是浮点数的运算过程。 ==== 运算过程 ==== 对阶>尾数计算>结果格式化 在二进制中进行浮点数运算的时候,还需要对结果进行格式化,将尾数限定在 0.5 和 1 之间。 ==== 特点 ==== # 一般尾数用<u>补码</u>,阶码用移码(在IEEE754工业标准当中,尾数也可以用原码来表示,通常都是补码表示居多) # <u>阶码的位数</u>决定数的<u>表示范围</u>,位数越多范围越大 # <u>尾数的位数</u>决定数的<u>有效精度</u>,位数越多精度越高 # 对阶时,<u>小数向大数看齐</u> # 对阶是通过较<u>小数的尾数右移(符号位保持不变,也叫作“算术右移”)</u>实现的 === 例题讲解 === 浮点数能够表示的数的范围是由其()的位数决定的。 A、尾数 B、阶码 √ C、数符 D、阶符 解: 尾数:决定的是有效精度,我们记录的数值是精确到百分位还是千分位就是有效精度; 阶符:就是阶码正负,阶码的符号位,符号位默认是正号,例如 10<sup>2</sup> 表示100,10<sup>-2</sup> 表示1/100,阶码的符号位决定整个数是整数还是小数,如果是正号,它是一个整数,如果是负号,变成小数的形式。 数符:浮点数的结构是 尾数×2指数,数符就是尾数的符号位,对于 +0.125×10<sup>2</sup> 是一个正数,对于 -0.125×10<sup>2</sup> 就是一个负数,尾数符号位可以决定整个数的正负。其实就是尾数部分的符号位。 以下关于两个浮点数相加运算的叙述中,正确的是() A、首先进行对阶,阶码大的向阶码小的对齐 B、首先进行对阶,阶码小的向阶码大的对齐 √ C、不需要对阶,直接将尾数相加 D、不需要对阶,直接将阶码相加 解: 浮点数运算的步骤是:先对阶,然后尾数运算,最后结果格式化。 对阶是小数向大数看齐,尾数右移。 设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。 若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是()。 A、-2<sup>64</sup>~(1-2<sup>-8</sup>)2<sup>64</sup> B、-2<sup>63</sup>~(1-2<sup>-8</sup>)2<sup>63</sup> C、-(1-2<sup>-8</sup>)2<sup>64</sup>~(1-2<sup>-8</sup>)2<sup>64</sup> D、-(1-2<sup>-8</sup>)2<sup>63</sup>~(1-2<sup>-8</sup>)2<sup>63</sup> 解: {| class="wikitable" |+ ! colspan="4" |16 bits |- ! colspan="2" |尾数 ! colspan="2" |阶码 |- |数符 |尾数 |阶符 |阶码值 |- |1 bit |8 bit |1 bit |6 bits |} 浮点数表示:N=尾数×基数<sup>指数</sup> {| class="wikitable" |+ !阶符 ! colspan="6" |阶码(6位) !数符 !尾数(8位) |- |1 | | | | | | | | |- | | | | | | | | | |- | | | | | | | | | |}
返回至
软件设计师精讲 数据的表示 浮点数的表示
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息