初学网络编程

请简述字节序的概念(概念、大小端),用共用体的方式求本机的大小端

字节序(Byte Order)指的是在数字在内存中表示时,字节的排列顺序。

目前常用的字节序有大端字节序(Big-Endian)和小端字节序(Little-Endian)两种。

在大端字节序中,最高位字节,也就是第一个字节存放在最低的内存地址处,对于整数0x12345678,它在大端字节序中的表示形式是0x12 0x34 0x56 0x78。

在小端字节序中,最低位字节,存放在最低的内存地址处,对于整数0x12345678,在小端字节序中的表示形式是0x78 0x56 0x34 0x12。

共用体:

#include <stdio.h>

union endian{
	int i;
	char c;
};

// 判断当前计算机的字节序
int check_endian(void)
{

	union endian num;
	num.i = 0x87654321;
	if(num.c == 0x21)
	{
		printf("This computer is Little-Endian\n");
		return 0;
	}
	else if(num.c == 0x87)
	{	
        printf("This computer is Big-Endian\n");
		return 1;
	}
}

int main(int argc, char const *argv[])
{
    check_endian();
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值