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

目录
相关文章
|
5天前
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
8天前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
28 6
|
9天前
|
存储 数据建模 程序员
C 语言结构体 —— 数据封装的利器
C语言结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起,形成一个整体。它支持数据封装,便于管理和传递复杂数据,是程序设计中的重要工具。
|
15天前
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
71 12
|
15天前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
42 11
|
7天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
19 1
|
12天前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
2月前
|
监控 算法 应用服务中间件
“四两拨千斤” —— 1.2MB 数据如何吃掉 10GB 内存
一个特殊请求引发服务器内存用量暴涨进而导致进程 OOM 的惨案。
|
1月前
|
C语言
【c语言】动态内存管理
本文介绍了C语言中的动态内存管理,包括其必要性及相关的四个函数:`malloc`、``calloc``、`realloc`和`free`。`malloc`用于申请内存,`calloc`申请并初始化内存,`realloc`调整内存大小,`free`释放内存。文章还列举了常见的动态内存管理错误,如空指针解引用、越界访问、错误释放等,并提供了示例代码帮助理解。
45 3
|
2月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
71 1