一 什么是大端小端
大端存储模式:就是内存的低位置存储于内存的高位置,数据的高位存储在内存的低位置。
小端存储模式:就是数据的低位存储在内存的低位置,数据的高位存储在内存的高位置中。
二 为什么有大端和小端
大端存储(Big Endian)和小端存储(Little Endian)是两种不同的字节序(即字节顺序)规则,用于在计算机中存储和表示多字节数据类型(例如整数)。
字节序指的是在多字节数据类型(如 2 字节的整数或 4 字节的整数)在内存中的存储顺序,即高字节和低字节的排列顺序。
这两种存储方式并没有绝对的好坏之分,而是由不同的计算机架构和处理器决定。大部分计算机和处理器都采用小端存储,例如 x86 架构的计算机。而一些处理器(如 PowerPC 架构)则使用大端存储。
小端存储的优势在于,读取和写入单个字节时的操作比较简单。而大端存储在网络通信中比较常用,因为网络协议通常要求以大端序传输数据。
在实际的开发中,程序员通常不需要直接关心字节序问题,因为编译器和底层库已经处理了字节序的转换。只有在与底层交互、网络通信或者需要直接操作二进制数据时,才需要考虑字节序的问题。
三 怎么判断当前机器字节序
#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}