数据在内存中的存储——深层解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 数据在内存中的存储——深层解析

:two_hearts::two_hearts::two_hearts:我们已经对C语言进行了一些学习与探讨,但==数据到底是如何在内存中存储==的我们是否知道,这里就应该画上一个大大的问号了???你真的知道吗?

一、数据类型的分类

==char== 字符型
==short== 短整型
==int== 整形
==long== 长整形
==long long== 更长的整形
==float== 单精度浮点数
==double== 双精度浮点数

为什么数据会分这么多类型,为什么不只统计定义一个使用?C语言有没有字符串类型.

类型的意义:
1.使用不同的类型开辟的空间大小不同(使用范围)
2.在内存中存储方式不同.

1.1.类型的归类

整形:
char
unsigned char
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]

浮点数:
float
double

构造类型:
数组类型
结构体 struct
枚举类型 enum
联合类型 union

指针类型:
int *p
char *p
float *p
void *p

二、整形的存储

int a=10;
int b=-20;

我们仅仅知道整形在内存中分配四个空间,那么它是怎么在内存中怎么分配存储的尼?
在这里插入图片描述

2.1.原反补码

对于一个数,计算机要使用一定的编码方式进行存储。 原码,反码,补码是机器存储一个具体数字的编码方式
原码:数值直接翻译成二进制
反码:符号位不变,其他位按位取反
补码:反码+1

为什么数据在内存中不直接存储原码,还要大动干戈转化为补码在进行存储?我们看下官方的答案:

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;
同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程
是相同的,不需要额外的硬件电路。

在这里插入图片描述
在这里插入图片描述
我们可以看到a,b分别以补码的形式在内存中存储

2.2.大小端的介绍

在这里插入图片描述
在这里插入图片描述
那什么是大小端存储尼?

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址
中;
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地
址中。

:sunglasses: :sunglasses: :sunglasses:根据上面的分析,那么我们的整形在内存中是以大端的方式存储还是小端的方式存储尼?

在这里插入图片描述
在这里插入图片描述
我们以b=-20为例进行分析
在这里插入图片描述
可以分析到,我们数据的低位存在内存的低地址中,符合小端存储方式,那么我们整数大部分都是以小端的方式在内存中存储

2.3.如何用代码判断大小端存储

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int check_s() {
    int n = 1;
    return *(char*)&n;
}
int main() {
    int r = check_s();
    if (r == 1) {
        printf("小端存储\n");
    }
    else
        printf("大端存储\n");
    return 0;
}

在这里插入图片描述

2.4.经典再现

//输出什么?
#include <stdio.h>
int main()
{
    char a= -1;
    signed char b=-1;
    unsigned char c=-1;
    printf("a=%d,b=%d,c=%d",a,b,c);
    return 0; }
:grey_question::grey_question::grey_question: 不会有人天真的以为这个会输出三个-1吧,结果如下:
在这里插入图片描述

在这里插入图片描述

#include <stdio.h>
int main()
{
    char a = -128;
    printf("%u\n",a);
    return 0; }
:grey_question::grey_question::grey_question: 不会又有人天真的以为这个会输出三个-128吧,结果如下:

在这里插入图片描述
在这里插入图片描述

输出时为无符号输出,默认这个数是整数,而不是负数,所以才会输出一个很大的正数

在这里插入图片描述
:sunny::sunny::sunny:这一期的==数据在内存中如何存储==就到这里了,如果大家感到有帮助的话,记得一键三连哦.

目录
相关文章
|
2月前
|
存储 缓存 安全
Java内存模型深度解析:从理论到实践####
【10月更文挑战第21天】 本文深入探讨了Java内存模型(JMM)的核心概念与底层机制,通过剖析其设计原理、内存可见性问题及其解决方案,结合具体代码示例,帮助读者构建对JMM的全面理解。不同于传统的摘要概述,我们将直接以故事化手法引入,让读者在轻松的情境中领略JMM的精髓。 ####
51 6
|
1天前
|
存储 搜索推荐 大数据
数据大爆炸:解析大数据的起源及其对未来的启示
数据大爆炸:解析大数据的起源及其对未来的启示
32 14
数据大爆炸:解析大数据的起源及其对未来的启示
|
11天前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
4天前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
22 12
|
6天前
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
40 12
|
9天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
34 7
|
1月前
|
存储 算法 Java
Java内存管理深度解析####
本文深入探讨了Java虚拟机(JVM)中的内存分配与垃圾回收机制,揭示了其高效管理内存的奥秘。文章首先概述了JVM内存模型,随后详细阐述了堆、栈、方法区等关键区域的作用及管理策略。在垃圾回收部分,重点介绍了标记-清除、复制算法、标记-整理等多种回收算法的工作原理及其适用场景,并通过实际案例分析了不同GC策略对应用性能的影响。对于开发者而言,理解这些原理有助于编写出更加高效、稳定的Java应用程序。 ####
|
1月前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
2月前
|
安全 Java
Java中WAIT和NOTIFY方法调用时机的深层解析
在Java多线程编程中,`wait()`和`notify()`方法的正确使用对于线程间的协调至关重要。这两个方法必须在同步块或同步方法中调用,这一规定的深层原因是什么呢?本文将深入探讨这一机制。
55 5
|
2月前
|
存储 安全 数据安全/隐私保护
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
36 2

热门文章

最新文章

推荐镜像

更多