浮点数的阶码,尾数与移码
来源:互联网 发布:网络家教招聘 编辑:程序博客网 时间:2024/06/07 22:57
【阶码与尾数】
十进制中通常一个浮点数可以用科学技术法来表示,举例:-306.5可以表示为-0.3065*103
其中 -是符号,指数3是阶或称阶码,0.3065是小数部分 左右段非0包起来的部分是有效值 这里的有效值是3065,小数部分也称为尾数,显然3065也是尾数(-3.87的话 387是有效值 87是尾数)。
因为他可以表示为-3.065*102 也可以表示为-0.03065*104 等,小数部分可以左右“浮动” 但不管小数部分怎么移动,他的有效值是不变的,都是3065 (不过尾数是变化的)。
【移码】
于是两个浮点数相加就先要通过小数点的左右浮动,将阶码对齐,然后进行尾数相加。
S为符号位,Exp为指数位,Fraction为有效数位。 指数部分即使用所谓的偏正值形式表示(也就是移码),实际值为表示值与一个固定值(32位单精度的情况是127)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。
单精度的指数部分是-126~+127加上127 ,指数值的大小从1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。
【浮点数的二进制转换】
在计算机内部,浮点数都是以二进制表示的,所以 对于十进制浮点数,要先转换为二进制浮点数,然后分两步,整数部分的转换,采用(“除2取余法” ) 小数部分采用 (“乘2取整法”)即把小数部分乘2取整,在把取完整数好留下的小数部分在乘2取整,以此类推。
为了使有效值和尾数能够统一,在空间上表达更有效率 有必要将所有浮点数规格化,即浮点数通过调整阶码,写成小数点前不含有有效数字,小数点后第一位由非0数字表示,举例-306.5规格化为-0.3065*103 。
二进制浮点数的规格化方法:通过调整小数点的阶码使得该数的有效值在1和2之间,既二进制浮点数的整数部分为1,
例如:0.8125 = 0.1101(2) = 1.101*2(-1)
【举例】
请将十进制数0.07525表示为规格化浮点数,阶码(包括阶符)为4位二进制位,尾数(包括)尾符为8位二进制数,均采用补码形式。
0.07525表示成二进制是:
0.07525*2=0.1505 0
0.1505*2=0.301 0
0.301*2=0.602 0
0.602*2=1.204 1
0.204*2=0.408 0
0.408*2=0.816 0
0.816*2=1.632 1
0.632*2=1.264 1
0.264*2=0.528 0
0.528*2=1.056 1
0.056*2=0.112 0
0.112*2=0.224 0
0.224*2=0.448 0
0.0001001101000=1.001101000*2^-3
由于尾数(包括)尾符为8位二进制数,所以,0.07525(十进制)=1.00110100*2^-3(二进制)
阶码=-3+127=124,符号位 指数部分 尾数部分:0 01111100 00110100
为了使有效值和尾数能够统一,在空间上表达更有效率 有必要将所有浮点数规格化
重要 :【即浮点数通过调整阶码,写成小数点前不含有有效数字,小数点后第一位由非0数字表示,举例-306.5规格化为-0.3065*103 】
2:十进制浮点数转换为二进制浮点数
在计算机内部,浮点数都是以二进制表示的,所以 对于十进制浮点数,要先转换为二进制浮点数,然后分两步,整数部分的转换,采用(“除2取余法” ) 小数部分采用 (“乘2取整法”)即把小数部分乘2取整,在把取完整数好留下的小数部分在乘2取整,以此类推
3:二进制浮点数的尾数及规格化
一旦十进制浮点数转换完成二进制浮点数后,就要像十进制数那样,对二进制数规格化,以便于计算机表示。
二进制浮点数的规格化方法:
重【通过调整小数点的阶码使得该数的有效值在1和2之间,既二进制浮点数的整数部分为1】
例如:0.8125 = 0.1101(2) = 1.101*2(-1)
- 浮点数的阶码,尾数与移码
- 为何将移码作为浮点数的阶码
- 机器数的原码、反码、补码、移码表示以及浮点数的二进制表示
- 浮点数的尾数基值取2,并采用隐含位表数方法,则这种浮点数的表数效率为()
- 数据表示__浮点数尾数的下溢处理方法
- 数的机器码表示(原码,反码,补码,移码)
- 高次方数的尾数
- 高次方数的尾数
- 高次方数的尾数
- 汇编 —— 尾数、负数加法、标准浮点数
- 浮点数的二进制的阶码
- 定点数与浮点数的区别
- 定点数与浮点数的区别
- 定点数与浮点数的区别
- 原码、反码、补码及移码的作用与区别
- 原码、反码、补码及移码的作用与区别
- 原码、反码、补码及移码的作用与区别
- sprintf与浮点数的表示
- Smali入门
- ApplicationCommands 应用程序常见命令
- Canvas绘图基本用法
- 设计模式—工厂模式
- 开关onoff的使用
- 浮点数的阶码,尾数与移码
- 欢迎使用CSDN-markdown编辑器
- Uva 572 Oil Deposits 油田 (DFS求连通块)
- Python3.6 20个入门级小程序(二)
- VMware Fusion 10序列号
- Linux下Patch制作(打补丁)
- 前端到后端乱码问题
- Linux的帐号管理与ACL权限设定
- 大型网站架构系列:负载均衡详解(1)