float类型和16进制数据转换
来源:互联网 发布:二维码美化软件是什么 编辑:程序博客网 时间:2024/06/06 00:00
先看一下IEEE关于浮点数的定义:
IEEE 754规定了四种表示浮点数值的方式:单精确度(32位元)、双精确度(64位元)、延伸单精确度(43位元以上,很少使用)与延伸双精确度(79位元以上,通常以80位元实做)。只有32位元模式有强制要求,其他都是选择性的。
32位单精度
单精度二进制小数,使用32个位元存储。
1823 位长SExpFraction3130至23偏正值 +12722至0 位编号(从右边开始为0)
S为符号位
Exp为指数位
Fraction为有效数位
指数部分即使用所谓的偏正值形式表示,实际值为表示值与一个固定值(32位的情况是127)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。单精度的指数部分是−126~+127加上127 ,指数值的大小从1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。
例如有一个浮点数是6.91,如何将其转换为十六进制呢?
首先将6.91转换为二进制形式:
110.111010001111010111000
将其规范化:调整使其实数第一位大于1小于2
6.91 = 1.10111010001111010111000 * 2^2
基本原型出来了
S:0
EXP : 2+127(10进制) =129(10进制) = 10000001(2进制)
Fraction : 10111010001111010111000 (注意:小数点前面的1不要了)
组合一下: 0 10000001 10111010001111010111000
= 0100 0000 1101 1101 0001 1110 1011 1000
= 4 0 D D 1 E B 8
- float类型和16进制数据转换
- 16进制和float之间转换
- int类型转换为float类型数据
- 怎么转换数据库float类型的数据
- 怎么转换数据库float类型的数据
- java关于float类型和int类型数据转换为字符串(吃软不吃硬)
- 字符串转换成float和double类型
- Json中的Date类型和Float类型的转换
- float数据转换
- JS的类型转换和float取n位小数
- JS的类型转换和float取n位小数
- C语言二进制和float、int类型转换
- java int和float默认类型转换探究
- float到int类型转换
- float和double类型数据做比较问题
- OpenCV中double和float类型图像数据的访问
- VS2012中用cout输出float和double类型数据
- 关于float和double类型数据的输入输出
- (转)在 CentOS7 上安装 MySQL5.7
- 有关数据库与界面传数据简单处理模式 ajax
- Excel 宏 文本分类
- Java多线程、并发时使用Synchronized(同步锁)解决资源竞争问题
- 线上环境安装及配置实操(git)
- float类型和16进制数据转换
- MongoDB整合Spring Boot 的logback
- 运用Construct2制作游戏 2
- Linux进阶篇--文件系统
- Kotlin入门学习总结
- csapp-lab4 cachelab
- UDT拥塞控制算法
- 触发动画插件scrollreveal.js
- 工作日记2017.11.14 response导出文件