首页 > 其他分享 >c语言中float类型的存储及IEEE规范

c语言中float类型的存储及IEEE规范

时间:2022-12-17 21:45:57浏览次数:68  
标签:存储 38 0000 二进制 float 3.4 IEEE

  float是浮点型数据类型。

  float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)。

  float在内存中的存储遵循IEEE 754标准。在C/C++中,float类型占4个字节即32位 , 这32位分成了3部分:

  • 符号位:转化成二进制后,第31位。 0代表正数,1代表负数
  • 阶码:30-23位,转化成规格化的二进制之后与127之和
  • 尾数:22-0位

5d94b317c8cda1190746fc3a9e30fcdd.png

例如:13.625在内存中的存储

首先将13.625转化成二进制

整数部分除2取余,直到商为0停止 。最后读数时,从最后一个余数读起,一直到最前面的一个余数

0431c30f070bd198fe78ee050350bc45.png

所以整数部分13的二进制位 1101;

小数部分乘2取整,然后从前往后读。0.625*2 = 1.25 取整 1

0.25*2 = 0.5 取整 0

0.5*2 = 1 取整 1

所以小数部分的二进制 101

然后将 1101.101的小数点向左移至小数点前只有一个1,即左移3位 。(这里为二进制的特定表示方法,将整数部分划为1)

阶码就是3+127 = 130 即:1000 0010

符号位:0

尾数 :因为小数点前必为一,所以记录小数点后面的数即可 101101

0100 0001 0101 1010 0000 0000 0000 0000

转换成16进制后为 41 5A 00 00

验证c语言的float实现符合IEEE规范

  将32位标准IEEE754格式的二进制存储格式赋值给float类型输出,如果输出结果与二进制存储格式对应的数值相同说明C语言中float,double类型符合IEEE754格式

#include <stdio.h>
void main()
{
    float* a;
    unsigned int hex = 0x41A4C000; //0x41AAC000 代表小数为20.59375
    a = &hex;
    printf("%.2f", *a);
}

 

 

标签:存储,38,0000,二进制,float,3.4,IEEE
From: https://www.cnblogs.com/lightdb/p/16989580.html

相关文章

  • c中浮点数类型数据存储
    浮点数在内存的表示方式根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成下面形式:       (-1)^s*M*2^E       (-1)^s表......
  • 使用匿名类型存储LINQ查询结果
    匿名类型的特性:1.既支持简单类型也支持复杂类型。简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项;2.匿名类型的属性是只读的,没有属性设置器,它......
  • 【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内
    问题描述在从StorageAccount队列中获取数据(Queue),在门户中,明显看见有数据,但是通过消费端代码去获取的时候,就是无法获取到有效数据的情况。获取消息的代码如下:  ......
  • 阿里云对象存储OSS计费规则
    分按时收费和包年包月,使用量大可以包年包月,量少就按量付费:阿里云对象存储OSS1.首先开通对象存储OSS是不收费的;2.你在对象存储OSS上创建了Bucket,创建Bucket也是不收费的;......
  • SharedPreferences对数据的存储
    SharedPreferences简介:                                     它的本质是基于XML文件存储key-......
  • 计组学习04——Floating Points
    计组学习——FloatingPoint浮点数的表示0bxx.xxxx\(2^1\2^0\.2^{-1}\2^{-2}\2^{-3}\2^{-4}\)这是6位数字分别的含义可以很容易发现,浮点数的精度是一个很大......
  • 开发者云对象存储命令行工具
    近期推出了​​开发者云服务​​,我对比了下各产品同其他云厂商之间的价格,开发者云的价格确实是相当香了,就拿我今天要讲的​​对象存储​​的价格为例,列举下各厂商1GB/月价格......
  • 【分布式存储数据恢复】hbase和hive数据库数据恢复案例
    分布式存储数据恢复环境:16台物理服务器,每台物理服务器上有数台虚拟机;虚拟机上配置分布式,上层部署hbase数据库和hive数据库。分布式存储故障&分析:误删除数据库底层文件,数......
  • MySQL技术内幕—第一章 体系结构和存储引擎
    MySQL被设计为一个单进程多线程架构的数据库,数据库实例在系统上的表现就是一个进程。当启动实例时,MySQL数据库会去读取配置文件,根据配置文件的参数来启动数据库实例。而......
  • IEEE浮点数表示
    **浮点数表示**IEEE浮点标准用$V=(-1)^s*M*2^E的形式来表达一个数$: -符号(sign)s决定这个数是负数(s=1)还是正数(s=0),而对于数值0的符号解释作为特殊情况处理......