浮点数存储格式

浮点数存储格式

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

地址

+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 条评论
登录 后参与评论

相关文章

来自专栏LanceToBigData

OOAD-设计模式(一)概述

前言   在我们很多时候设计代码都是需要用到各种不一样的设计模式的,接下来着几篇给大家领略一下设计模式。知道设计模式的作用,以及在代码的具体体现。很多时候我们看...

221100
来自专栏racaljk

什么是副作用(Side Effect)

副作用(Side Effect)是指函数或者表达式的行为依赖于外部世界。具体可参照Wiki上的定义,副作用是指

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

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

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

11420
来自专栏C语言C++游戏编程

因为有你,所以出彩!C语言编程中不可或缺的条件判断和循环

在编程语言中,判断和循环可以说是最重要的之一,正因为实现了它们的功能,才能够有如今各种各样功能的程序。今天小编带大家来了解一些条件判断和循环的知识。

14430
来自专栏WeaponZhi

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

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

35460
来自专栏老九学堂

零基础学Java第三讲变量

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

30750
来自专栏华章科技

值得收藏的Python小技巧:这17个骚操作你都OK吗?

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

31130
来自专栏CSDN技术头条

关于设计模式的思考

为什么叫设计模式 什么是设计模式 设计模式最初是被 GoF 于1995年提出的。GoF 全称是Gang of Four(四人帮),即 Erich Gamma,R...

37660
来自专栏编程

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

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

25580
来自专栏积累沉淀

Java设计模式(三—四)----工厂模式

Java设计模式 工厂模式 一、引言 二、分类 三、简单工厂模式 四、工厂方法模式 五、抽象工厂模式 六、和工厂方法模式区别 七、总...

19850

扫码关注云+社区

领取腾讯云代金券