关于大小端模式的说明

1、高字节对应低地址(大端模式)、高字节对应高地址(小端模式)
有些CPU是大端(譬如C51单片机);有些CPU是小端(譬如ARM)。(大部分是用小端模式)


2、用C语言写一个函数来测试当前机器的大小端模式。


用union来测试机器的大小端模式

union myunion
{
int a;
char b;
};


int is_little_endian(void)
{
union myunion u1;
u1.a = 1;
return u1.b;
}
//分析:返回值为1,说明低位放在低地址,为小端模式,否则为大端模式




指针方式来测试机器的大小端

int is_little_endian2(void)
{
int a = 1;
char b = *((char *)(&a));// 指针方式其实就是共用体的本质


return b;//分析:返回值为1,说明低位放在低地址,为小端模式,否则为大端模式
}

注意:位与、移位、强制类型转化都不能进行大小端模式测试,因为这些都是逻辑上的操作,不涉及内存。


在通信协议中,大小端是非常重要的,一般来说,先发低字节叫小端;先发高字节就叫大端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值