c语言中大小端字节序和字节序判断

当我们了解了整数在内存中的存储后,我们调试看一个细节:

//整形占用四个字节,就是看字节在存储的位置的高低

什么是大小端?

其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储。

大端(存储)模式:

是指数据的低地位内容保存在内存的高地位地址,而数据的高位字节内容,保存在内容的低地址位

小端(存储)模式:

是指数据的低地位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址

例如:设计一个小程序来判断当前机器的字节序

cs 复制代码
#include<stdio.h>
int main()
{
	int a = 1;
	if(*(char*)&a == 1)
	{
		printf("小端\n");
	 } 
	 else
	 {
	 	printf("大端\n");
	 }
	return 0;
 } 
cs 复制代码
#include<stdio.h>
int check_sys()
{
	int a=1;
	return *(char*)&a;//返回第一个字节,如果是1就返回1,是0就返回0 
}
int main()
{
	if(check_sys() == 1)
	{
		printf("小端\n");//说明第一个字节是1 
	 } 
	 else
	 {
	 	printf("大端\n");//说明最后一个字节是1 
	 }
	return 0;
 } 

//X86环境 小端字节序,%x是以16进制的形式进行打印

cs 复制代码
#include<stdio.h>
//X86环境 小端字节序 
int main()
{
	int a[4]={1,2,3,4};
	int *ptr1 = (int*)(&a+1);
	int *ptr2 = (int*)((int)a + 1);
	printf("%x,%x",ptr1[-1],*ptr2);
	return 0; 
 } 
 //4 20000000 
相关推荐
MC皮蛋侠客20 小时前
Google Test 单元测试指南
c++·单元测试·google test
艾莉丝努力练剑21 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
kkeeper~21 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
wabs6661 天前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964131 天前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
basketball6161 天前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
qq3862461961 天前
更新补发第6天:7天学会C语言,每天5分钟,不需要基础
c语言·for循环·循环语句·while循环·do-while循环
嗝o゚1 天前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本1 天前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
Fre丸子_1 天前
自定义文件夹选取功能
c++