数据存储(改进版)

简介: 数据存储(改进版)

知识回顾


在学习之前我想问大家一个问题,就是下面这个代码的运行结果是什么

int main()
{
  int n = 9;
  float* pFloat = (float*)n;
  printf("%d", n);
  printf("%f", *pFloat);
  *pFloat = 9.0;
  printf("%d", n);
  printf("%f", *pFloat);
  return 0;
}

怎么样,你是否能做出来呢?如果不能就请大家来复习复习前面的知识吧。


前面的学习就请大家转到这里来回顾一下https://developer.aliyun.com/article/1223088


那么这里我要补充的是当E全为0或者1的时候,我们取出来的时候又该怎么取呢?我们知道当我们在存储E的时候需要加上一个值,在32位机器上,我们需要加上127,而在64位机器上我们需要加上1023。相反的当我们拿出来的时候就需要减上一个值,当E为其他值就正常的减去就行了,可是当E为0或者1的时候,就需要不同的方法。


当E全为0时


如果还是按照常规的方式那么0-127=-127,2^-127是一个很小很小的数,它再乘上前面的数还是接近于0。所以我们就不能用常规的方法。


浮点数的指数E等于1-127或者是1-1023,而有效值的M不再加上第一位的1,而是还原成0.xxxxxx的小数。这样是为了表示+=0,以及接近于0的很小的数字。


当E全为1时


当存储的时候E全为1时,我们就可以把它看作+=无穷大,因为2^127本身就是一个相当大的数字,更不用说再乘上前面的数字,所以我们就可与把它看作是无穷大。


这些就是我补充的内容,希望能对你有所帮助

相关文章
|
28天前
|
存储 程序员 芯片
第三章-存储系统
第三章-存储系统
23 0
|
3月前
|
存储 关系型数据库 MySQL
第七章InnoDB数据存储结构
第七章InnoDB数据存储结构
21 0
|
3月前
|
算法 搜索推荐
数据结构和算法——快速排序(算法概述、选主元、子集划分、小规模数据的处理、算法实现)
数据结构和算法——快速排序(算法概述、选主元、子集划分、小规模数据的处理、算法实现)
25 0
|
4月前
|
存储 机器学习/深度学习 算法
深入探索数据压缩:哈夫曼编码与其同类技术的原理与C++ 实现
深入探索数据压缩:哈夫曼编码与其同类技术的原理与C++ 实现
154 0
|
Python
哈夫曼编码:高效的数据压缩方案
哈夫曼编码:高效的数据压缩方案
255 0
|
存储 算法 固态存储
解析内存中的高性能图结构
在进行各种图处理、图计算、图查询的时候,内存或是硬盘中如何存储图结构是一个影响性能的关键因素。本文主要分析了几种常见的内存图结构,及其时间、空间复杂度。
171 0
|
存储 SQL 缓存
读书笔记《数据密集型应用系统设计》- 数据存储与检索
《数据密集型应用系统设计》是一本很好的介绍数据密集类系统设计原理的纲要性书籍,笔者再次阅读下,记录一些读书笔记,也写一些自己的思考穿插其中,以做备忘。
141 0
|
存储 缓存 分布式计算
Structured_体系结构_无限扩展的表 | 学习笔记
快速学习 Structured_体系结构_无限扩展的表
101 0
Structured_体系结构_无限扩展的表 | 学习笔记
|
存储 缓存 JSON
|
算法 Java C++
数据压缩算法的介绍-Java实现-对比
在RPC通信数据的传输场景下,当通信报文数据传输较大时,会对数据包进行压缩传输,根据不同传输场景,常用的压缩算法有Zlib、Gzip、Bzip2、Deflater、Lz4、Lzo、Snappy算法等。以下将包括算法的介绍、Java实现代码以及各算法间的模拟性能对比。
数据压缩算法的介绍-Java实现-对比