博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮点数的编码方式
阅读量:6477 次
发布时间:2019-06-23

本文共 647 字,大约阅读时间需要 2 分钟。

浮点数编码转换的是IEEE规定的编码标准,IEEE规定将浮点数拆分为3部分,符号、整数、尾数。float和double这两个类型的原理都差不多,但是由于表示的精度不一样,有些许的差别。

float类型的IEEE编码。

float类型在内存中占4个字节(32位),最高位表示符号,从左向右取8位表示指数,其余23位用于表示尾数。

例如:12.25f

将起转换为二进制是:1100.01

整数部分是1100.

小数部分是01.

将小数点向左或向右移动,直到小数点最左边除却符号位是1为止。

即此时需要向右移动三位。

三位几位指数位的数值。

于是,12.25f经过转换后是:

符号位:0

指数位:127+3。即10000010 (为什么要加127(二进制01111111) IEEE规定,小于01111111的指数位为负数)

尾数位:10001 000000000000000000不足23位,用0填充

故最后的结果是 0 10000010 10001 000000000000000000 

十六进制是0x41440000

在内存中以小尾方式排列为 00 00 44 41

值得注意的是 double最高位同样表示符号位,指数位占11位,剩余42位表示用于位数。

在float中,指数范围中加127表示符号正负,同样double扩大了精度,指数范围中加1023表示符号正负,其他方法和float一样。

转载于:https://www.cnblogs.com/Reyzal/p/5142319.html

你可能感兴趣的文章
Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
查看>>
生活杂事--度过十一中秋
查看>>
Pyrex也许是一个好东西
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
Callable和Future
查看>>
installshield12如何改变默认安装目录
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>