C语言 — 数据在内存中的存储(1)

简介: 近期会更新整形和浮点型在内存中的存储方式,本文是对整形在内存中存储进行介绍。如果有帮助,还请各位小伙伴多多点赞关注收藏,后期会持续进行更新!!!本文内容数据类型详细介绍整形在内存中的存储:原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析

前言

image.png

本文内容


image.png

文章目录

前言

本文内容

一、类型的基本归类

1.整形类型

2.浮点数类型

3.指针类型

4.构造体类型

5.空类型

二、整形在内存中的存储方式

1.原码 反码 补码

原码

反码

补码

2.补码转为原码的两种方式

第一种

第二种

3.大小端存储模式

大端字节序

小端字节序

三、完结


一、类型的基本归类


1.整形类型

整形类型分为有符号、无符号两类

image.png

char 类型


char//char = signed charsignedchar//有符号字符类型    unsignedchar//无符号字符类型

short 类型


short//short = signed shortsignedshort//有符号短整型类型unsignedshort//无符号短整形类型

int 类型


int//int = signed intsignedint//有符号整形类型unsignedint//无符号整形类型

long 类型


long//long = signed longsignedlong//有符号长整型类型unsignedlong//无符号长整形类型

2.浮点数类型

float//单精度浮点型double//双精度浮点型

3.指针类型

int*//整形指针类型char*//字符指针类型float*//浮点型指针类型void*//空指针类型

4.构造体类型

arr[]              //数组类型 struct//结构体类型enum//枚举类型union//联合类型

5.空类型

void//void表示空类型  通常应用于函数的返回类型、函数的参数、指针类型

二、整形在内存中的存储方式


1.原码 反码 补码

计算机中的整数有三种2进制表示方法,即原码反码补码

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位


image.png

image.png

原码

image.png

反码

image.png

补码

image.png

2.补码转为原码的两种方式


第一种

image.png

image.png

第二种

image.png

image.png

3.大小端存储模式


字节序是指多字节数据在内存或网络传输过程中的存储顺序。由于计算机硬件和软件的不同,字节序也会有不同的表示方式,主要分为大端字节序和小端字节序。


大端字节序

image.png

小端字节序

image.png

这里设计一个程序来识别当前机器的字节序

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>voidestimate(intx)
{
if (x==1)
    {
printf("小端");
    }
else    {
printf("大端");
    }
}
intmain()
{
inta=1;
char*p= (char*)&a;
estimate(*p);
return0;
}

三、完结

image.png

目录
相关文章
|
9月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
2867 0
|
9月前
|
安全 C语言 C++
比较C++的内存分配与管理方式new/delete与C语言中的malloc/realloc/calloc/free。
在实用性方面,C++的内存管理方式提供了面向对象的特性,它是处理构造和析构、需要类型安全和异常处理的首选方案。而C语言的内存管理函数适用于简单的内存分配,例如分配原始内存块或复杂性较低的数据结构,没有构造和析构的要求。当从C迁移到C++,或在C++中使用C代码时,了解两种内存管理方式的差异非常重要。
300 26
|
9月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
409 15
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
9月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
949 1
|
9月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1124 0
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
|
存储 编译器 程序员
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
在C语言中,内存布局是程序运行时非常重要的概念。内存布局直接影响程序的性能、稳定性和安全性。理解C程序的内存布局,有助于编写更高效和可靠的代码。本文将详细介绍C程序的内存布局,包括代码段、数据段、堆、栈等部分,并提供相关的示例和应用。
704 5
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
|
存储 数据管理 C语言
C 语言中的文件操作:数据持久化的关键桥梁
C语言中的文件操作是实现数据持久化的重要手段,通过 fopen、fclose、fread、fwrite 等函数,可以实现对文件的创建、读写和关闭,构建程序与外部数据存储之间的桥梁。