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

目录
相关文章
|
2月前
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
1月前
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
|
2月前
|
存储 编译器 程序员
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
在C语言中,内存布局是程序运行时非常重要的概念。内存布局直接影响程序的性能、稳定性和安全性。理解C程序的内存布局,有助于编写更高效和可靠的代码。本文将详细介绍C程序的内存布局,包括代码段、数据段、堆、栈等部分,并提供相关的示例和应用。
78 5
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
|
2月前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
116 6
|
2月前
|
存储 数据管理 C语言
C 语言中的文件操作:数据持久化的关键桥梁
C语言中的文件操作是实现数据持久化的重要手段,通过 fopen、fclose、fread、fwrite 等函数,可以实现对文件的创建、读写和关闭,构建程序与外部数据存储之间的桥梁。
|
3月前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
93 6
|
3月前
|
存储 数据建模 程序员
C 语言结构体 —— 数据封装的利器
C语言结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起,形成一个整体。它支持数据封装,便于管理和传递复杂数据,是程序设计中的重要工具。
|
3月前
|
大数据 C语言
C 语言动态内存分配 —— 灵活掌控内存资源
C语言动态内存分配使程序在运行时灵活管理内存资源,通过malloc、calloc、realloc和free等函数实现内存的申请与释放,提高内存使用效率,适应不同应用场景需求。
|
3月前
|
存储 算法 程序员
C 语言指针详解 —— 内存操控的魔法棒
《C 语言指针详解》深入浅出地讲解了指针的概念、使用方法及其在内存操作中的重要作用,被誉为程序员手中的“内存操控魔法棒”。本书适合C语言初学者及希望深化理解指针机制的开发者阅读。
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
101 1