浮点数存储格式

浮点数存储格式

浮点数保存的字节格式如下:

地址

+0

+1

+2

+3

内容

SEEE EEEE

EMMM MMMM

MMMM MMMM

MMMM MMMM

  • S 代表符号位,1 是负,0 是正
  • E 偏移 127 的幂,二进制阶码=(EEEEEEEE)-127。
  • M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精度。

零是一个特定值,幂是0, 尾数也是0。

浮点数 -12.5 作为一个十六进制数 0xC1480000 保存在存储区中,这个值如下:

地址

+0

+1

+2

+3

内容

0xC1

0x48

0x00

0x00

浮点数和十六进制等效保存值之间的转换相当简单。下面的例子说明上面的值 -12.5 如何转换。

浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表所列的那样分开,例如:

地址

+0

+1

+2

+3

格式

SEEE EEEE

EMMM MMMM

MMMM MMMM

MMMM MMMM

二进制

11000001

01001000

00000000

00000000

十六进制

C1

48

00

00

从这个例子可以得到下面的信息:

  • 符号位是1 表示一个负数
  • 幂是二进制 10000010 或十进制 130,130 减去 127 是3,就是实际的幂。
  • 尾数是后面的二进制数 10010000000000000000000
  • 在尾数的左边有一个省略的小数点和 1, 这个 1 在浮点数的保存中经常省略, 加上一个 1 和小数点到尾数的开头,得到尾数值如下: 1.10010000000000000000000
  • 接着, 根据指数调整尾数. 一个负的指数向左移动小数点. 一个正的指数向右移动小数点. 因为指数是3, 尾数调整如下: 1100.10000000000000000000
  • 二进制计算可以得到 12.5,再根据之前得到的符号位,最终能得到浮点数为 -12.5

参考文章

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

理解Scala的函数式风格:从var到val的转变

Scala允许你用指令式风格编程,但是鼓励你采用一种更函数式的风格。如果你是从指令式的背景转到Scala来的——例如,如果你是Java程序员——那么学习Scal...

2313
来自专栏程序员互动联盟

C语言最难啃的三块硬骨头

提到C语言很多初学者都觉得,学到中间就进行不下去了,因为碰到了几个硬骨头死活翻不过去,于是很多人给C语言下结论太难了,太靠近底层了,特别是那几块难啃的骨头,直接...

3885
来自专栏WeaponZhi

AI 学习之路——轻松初探 Python 篇(三)

这是「AI 学习之路」的第 3 篇,「Python 学习」的第 2 篇 Python 字符串使用和 C 语言比较类似,但还有一些我们值得注意的地方需要关注,用这...

3436
来自专栏老九学堂

零基础学Java第三讲变量

如何掌握了变量这个语法?看看微视频中对应的知识点的讲解。 别走开,下面有干货哦! 1了解什么是变量?变量如何使用? 2会使用常用的数据类型 任何编程语言的语...

2825
来自专栏微信公众号:Java团长

谈谈我对面向对象以及类与对象的理解

对于刚接触JAVA或者其他面向对象编程语言的朋友们来说,可能一开始都很难理解面向对象的概念以及类和对象的关系。笔者曾经带过一个短期培训班教授java入门基础,在...

1072
来自专栏Java架构沉思录

聊聊设计模式之工厂方法模式

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。

1063
来自专栏编程

C语言最难啃的三块硬骨头,你越过去了吗?

提到C语言很多初学者都觉得,学到中间就进行不下去了,因为碰到了几个硬骨头死活翻不过去,于是很多人给C语言下结论太难了,太靠近底层了,特别是那几块难啃的骨头,直接...

2258
来自专栏微信公众号:Java团长

谈谈我对面向对象以及类与对象的理解

对于刚接触JAVA或者其他面向对象编程语言的朋友们来说,可能一开始都很难理解面向对象的概念以及类和对象的关系。笔者曾经带过一个短期培训班教授java入门基础,在...

1153
来自专栏机器学习算法与Python学习

Python技巧 101:这17个骚操作你都Ok吗

Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 带我们回顾了 17 个非常有用的 Pyt...

1024
来自专栏程序员的SOD蜜

“法天象而应四时”--茶话软件开发之“抽象”

抽象不仅仅是软件领域,在有灵性的生物中都有抽象; 抽象不仅仅是OO的,非OO语言也有抽象; 抽象的级别: 类级别的抽象--类、抽象类、接口; 方法、函数级别的抽...

2378

扫码关注云+社区