C++中有单精度浮点型float和双精度浮点型double,那么它们的有效位和存储方式分别是什么样的呢?

float的有效数字是7位,这个7意思是整数位加小数位共七位;

double的有效数字是16位,这个16意思是整数位加小数位共十六位。

C和C++中浮点型存储方式遵循IEEE 754标准(IEEE Standard for Floating-Point Arithmetic)。

一个浮点数由三部分组成:符号位S、指数位E、和尾数位M。

float:


S:符号位是1,表示负数;符号位是0,表示正数。

E:指数位本应该可以表示正负指数的,但没有符号位,因此,指数位部分通过加上偏差值127来表示正负。例如:实际指数是-8,则该指数位是119;实际指数是8,则该指数位是135。指数位范围是0~255,而实际指数位范围是-127~128。

M:尾数位,由于M总是大于1小于2的,也就是M写成1.xxxxxxx的形式,其中xxxxxxx表示小数部分。所以计算机在保存时总是默认把1去掉。例如1.55只保存50。由于2^(23+1)=16777216,而10^7<16777216<10^8,所以单精度浮点型的有效位数是七位。

我们知道了存储方式,那么看到一个二进制浮点数怎么转换为整形呢?

举个栗子:二进制为 1 10000011 0110101 00000000 00000000

符号位为1:负数

指数位 : 10000011  而(10000011)2=131  131-127  = 4 (实际指数)

有效位 : 0110101 而 1.0110101*2^4=22.625

计算过程:

(二进制)10110.101

整数转换为十进制 1*16+1*4+1*2=22

小数转换为十进制1*0.5+1*0.125=0.625

所以,最终结果为-22.625

最后是计算的公式:十进制数=(-1)^符号位 * (1+尾数位) * 2^(指数位-127).

Double
S--------E-------M

d1位-----11位----52位

double类型和float的储存方式类似,就不多赘述了。

浮点型的有效位和存储方式相关推荐

  1. 【C语言】浮点型数据在内存中的存储方式

    目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...

  2. 浮点型数据存储方式浅析

    学习目标: ①   搞懂float和double型数据的存储方式 ②   实现浮点型二进制和十进制的相互转换 ③   了解float和double类型的取值范围及其精度的由来 浮点型作为Java基础数 ...

  3. C语言int类型和float浮点型数据在内存中的存储方式

    int 类型在内存中占4个字节,而一个字节是8个比特位,所以int类型占32个比特位. float类型在内存中同样也占4个字节,所以其也是占32个比特位. 一个比特位就是一个0或1,所以其在二进制位数 ...

  4. 十进制浮点型数据转换成二进制,并在内存中的存储方式

    文章源地址:http://blog.csdn.net/wzy198852/article/details/9617239   原文章有些地方有误,已更正 十进制小数的二进制表示: 整数部分:除以2,取 ...

  5. float double 的存储方式

    float 和 double 的表示法: 都是二进制的科学表示法: ± mantissa × 2 exponent (mantissa:尾数,exponent:指数,均使用二进制表示) float(浮 ...

  6. 金融系统中正确的金额计算及存储方式

    转载自 金融系统中正确的金额计算及存储方式 经典的精度丢失问题 Java中的类型float.double用来做计算会有精度丢失问题,下面来看下面的示例. public static void main ...

  7. IOS的四种数据存储方式及优劣

    IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用 ...

  8. C/C++浮点数在内存中的存储方式《转》

    那天有人在汇编群里有人问了一个 #include <iostream> #include <stdio.h> using namespace std; int main() { ...

  9. C语言的数据类型大全,整型数据在内存中的存储方式

    一.数据类型 通过长时间的学习C语言以及代码的编写,我掌握了很多很多的数据类型,下面就给大家罗列一下. 1.内置数据类型 char        //字符数据类型--                  ...

最新文章

  1. php实现调查结果百分比显示,Php文本游戏试图根据百分比做出结果
  2. 源码里throw new RuntimeException(“Stub!“)什么意思
  3. 闪回之 Flashback Data Archive
  4. Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
  5. 分块矩阵在秩不等式中的应用
  6. python语法详解_解析 Python3 基础语法
  7. The Nth Item
  8. uos系统终端调试linux命令,uos怎么开启开发者模式
  9. OpenCV读取多幅图片,读取系列图片,读取文件夹中指定图像类型的系列图片
  10. 发送HTTP请求的新姿势
  11. 精通开关电源设计(二)
  12. Visual Studio 2008系列教程(一):VS 2008安装详解!
  13. MicroKMS 下载 与使用
  14. 被90%中国人误解了12年的斜杠
  15. 三菱plc控制步进电机实例_【干货】plc控制步进电机逻辑思路,思路通了步步顺畅...
  16. 秦曾昌人工智能课程---1、机器学习中的数学基础
  17. 北风设计模式课程---里氏代换原则
  18. vivo手机互传的文件怎么找到_小白换机最头疼文件转移!学会vivo互传这几个技巧,换机更轻松...
  19. CyberWorld赛博世界是否能成为元宇宙核心力量
  20. ORACLE中CLOB介绍及使用

热门文章

  1. 森林救火模型matlab,数学建模1-森林救火模型
  2. 记录一次小项目中的重放攻击与解决方案
  3. HTML5(六).Input 类型
  4. net reactor加密源码保软件安全-net reactor使用教程
  5. 基于三菱Plc和触摸屏的运料小车控制系统设计装卸料小车控制
  6. 区块链:3、共识算法 拜占庭将军问题
  7. 《见与不见》——仓央嘉措
  8. Web3将成为成人文化产业的新方向?
  9. 世上本无事,庸人自扰之。
  10. 100个最容易出错的字