数据存储(改进版)

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

知识回顾


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

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本身就是一个相当大的数字,更不用说再乘上前面的数字,所以我们就可与把它看作是无穷大。


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

相关文章
|
Java Nacos 微服务
微服务中间件之Nacos
Nacos是阿里巴巴开源的动态服务发现、配置管理和服务管理平台,支持服务注册与发现、配置管理及服务健康监测。采用Spring Cloud、Spring Boot、Raft算法等技术,适用于微服务架构和云原生应用,提供简单易用的安装部署方式和丰富的应用场景。
2418 3
|
新零售 消息中间件 关系型数据库
分布式事务及分布式系统一致性解决方案
在分布式系统中,同时满足“一致性”、“可用性”和“分区容错性”三者是不可能的。分布式系统的事务一致性是一个技术难题,各种解决方案孰优孰劣? 在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。
1782 0
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
279 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
395 38
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
669 220