单精度浮点数: 1位符号位   8位阶码位   23位尾数

双精度浮点数: 1位符号位   8位阶码位   52位尾数

实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的位数。比如32位机上float型为23位       double型为52位。

单精度float型存储在内存中的大小为4个字节,即32位。

浮点表示的一般形式为:R=M*2^e (R:Real       M:Mantissa尾数     e:exponent阶码)

把上面float的二进制可分成三部分:

x                   xxxxxxxx             xxxxxxxxxxxxxxxxxxxxxxx

数符(1b)         阶码(8b)         尾数(23b)

double型的浮点数分别是:数符(1b)、阶码(8b)、尾数(52b)

数符sign:real的正负号     "+":0        "-":1

阶码e:e=E-127(double型中e=E-1023) e为正值说明这个浮点数向左移动了e位, e为负值说明这个浮点数向右移动了e位。127=2^7-1 1023=2^10-1

尾数M:有效数字位,这里是有效数字位的部分二进制码

例1:float型浮点数125.5转化成32位二进制浮点数

125.5的二进制码为1111101.1,写成二进制的科学计数为:1.1111011*2^6(因为科学计数法“整数”部分大于1,在二进制中,“整数”部分只能恒为1)即向左移6位,则e=6,则E=e+127=133,而E的二进制码为10000101,而1.1111011把“整数”部分去除1之后为1111011,之后补0,共23b,形成了阶码。

所以125.5的32位二进制浮点数为

0 10000101 11110110000000000000000

例2:float型浮点数0.5转化成32位二进制浮点数

0.5的二进制码为0.1,写成二进制的科学计数为:1.0*2^(-1)即向右移1位,则e=-1,则E=e+127=126,而E的二进制码为01111110,而1.0把“整数”部分去除1之后为0,之后补0,形成了阶码。

所以0.5的32位二进制浮点数为

0 01111110 00000000000000000000000

double型浮点数类似。

例3:32位二进制浮点数为0 10000010 00010000000000000000000转化成十进制数浮点数

题中已给我们分了三部分,数符部分、阶码部分、尾数部分。

数符部分为0,则代表此数为正数;阶码部分为10000010,则E=130,则e=E-127=3,则说明其向左移了3位,0001加上“整数”部分的1之后,为1.0001。则原二进制数为1000.1=十进制8.5,或R=1.0001*2^3=8.5

其中很多计算类似。可举一反三!

转载于:https://www.cnblogs.com/ivorfeng/archive/2013/04/04/2999220.html

转载--C语言:浮点数在内存中的表示相关推荐

  1. 【C语言进阶】③探究浮点数在内存中的存储方式

    文章目录 一.例题 二.浮点数在内存中存储方式 2.1国际标准IEEE(电气和电子工程协会)754规定: 2.2实际上,浮点数在内存的存储形式为: 2.3具体M和E是怎么算的呢? 三.题解 3.1刚开 ...

  2. 浮点数在内存中的表示

    2011年4月9日10:09:19 c语言中的浮点数在内存中的表示(VC++编译器中): char:1个字节 short:2个字节 int:4字节 long:4字节 float:4字节(单精度) do ...

  3. ee2prom擦除 c语言,浮点数在E2PROM中的存取方法.doc

    PAGE PAGE 1 浮点数据在E2PROM中的存取方法 摘 要 介绍了C51语言的浮点数在E2PROM中的存取方法. 关键词 浮点数 非易失存储器 存取方法 C51编程 1 引言 由于C语言的高效 ...

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

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

  5. 梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)

    文章目录 整形在内存中的存储 1. 数值类型的基本分类 2. 整形在内存中的存储 1. 原码.反码.补码 2. 内存中为什么要存放补码? 3. 大小端存储 4. 无符号有符号数练习 5. 有符号数无符 ...

  6. C语言负整数在内存中的存储

    C语言负整数在内存中的存储 内存的存储 1)在电脑的内存中分为1byte = 8bit 每个bit中可以储存一个低电压或者是高电压 也就是0和1 2)正如下面所示1字节大小 3)控制保存3 C 变量占 ...

  7. IEEE754标准: 浮点数在内存中的存储方式

    一. 什么是IEEE754标准 我们知道, 计算机内部实际上只能存储或识别二进制. 在计算机中, 我们日常所使用的文档, 图片, 数字等, 在储存时, 实际上都要以二进制的形式存放在内存或硬盘中, 内 ...

  8. 浮点数在内存中的存储

    我们已经介绍过整数在内存中的存储方式,那浮点数在内存中是怎样存储的呢? 先看一段代码: #include<stdio.h>int main() {int n = 9;float* pFlo ...

  9. 浮点数在内存中的存储——“C”

    各位CSDN的uu们你们好呀,今天,小雅兰的内容是浮点数在内存中的存储,昨天我们已经写过了整型在内存中的存储,那么,浮点数在内存中是怎样存储的呢?现在,就让我们进入浮点数在内存中的存储的世界吧 常见的 ...

  10. 浮点数在内存中的运算

    他们力量的源泉,是值得信赖的搭档以及想要保护的对象还有强大的敌人 本文收录于青花雾气-计算机基础 往期回顾 从汇编代码探究函数栈帧的创建和销毁的底层原理 从0到1搞定在线OJ 数据在内存中的存储 计算 ...

最新文章

  1. android TextView显示文字和图片
  2. zabbix mysql 查询,Zabbix4.4配置MySQL监控;
  3. 常见的社会潜规则有哪些?
  4. 谋而后动:解读数仓计划生成中行数估算和路径生成的奥秘
  5. 【Node】—nrm的简单使用
  6. Hyper-V 3 限定虚拟机可用的CPU利用率
  7. rk3399_android7.1耳机拔插ADC检测
  8. 我购买了一台acer笔记本
  9. linux离线安装系统工具arping
  10. Android 圆圈统计图(支付宝饼图)
  11. POI生成Word水印watermark(兼容WPS)的终极解决方案
  12. 水准测量的各种数字考点
  13. MyEclipse快捷键大全(转自豆瓣)
  14. 工业相机QE-量子转换效率
  15. 数据模型 LP32 ILP32 LP64 ILP64 LLP64
  16. java读取Excel内容添加到list集合里面去
  17. 【CET4四级英语】【单词】英语四级高频词汇(2)
  18. 加密基础知识二 非对称加密RSA算法和对称加密
  19. 立方公式 及 完全立方公式
  20. 2022年上海临港新片区科技小巨人(含培育)专项申报工作的通知

热门文章

  1. 工具分享 --- tinyPNG,大图片压缩工具
  2. Vite+Vue3页面空白、图标不显示问题解决
  3. 苏宁海量服务器自动化配置运维实践
  4. (八)限定某个目录禁止解析php、限制user_agent和PHP相关配置
  5. 共享单车,信息安全应未雨绸缪
  6. loadruner11 socket脚本-10053错误
  7. ​std::multimap
  8. objective-c(初始化)
  9. WinCE6.0学习之EBoot源码分析----startup.s(三)
  10. C#委托的异步调用[转]