字节序

大端序
大端序又叫网络字节序。大端序规定高位字节在存储时放在低地址上,
在传输时高位字节放在流的开始;低位字节在存储时放在高地址上,
在传输时低位字节放在流的末尾。

TCP/IP都是采用网络字节序的方式,java也是使用大端序方式存储。


小端序
小端序又叫主机字节序。小端序规定高位字节在存储时放在高地址上,
在传输时高位字节放在流的末尾;低位字节在存储时放在低地址上,

在传输时低位字节放在流的开始。



总结:
字节序只针对于多字节类型的数据。比如对于int类型整数0x12345678,它
占有4个字节的存储空间,存储方式有大端(0x12, 0x34, 0x56, 0x78)和
小端(0x78, 0x56, 0x34, 0x12)两种。可以看到,在大端或小端的存储方式中,

是以字节为单位的。所以对于单字节类型的数据,不存在字节序这个说法。


C程序验证字节序

#include <stdio.h>

/* 测试是大端序还是小端序 */
union Byte_Seq
{
	int num;
	char c[4];
};

int main()
{
	printf("size of union: %d\n", sizeof(union Byte_Seq));
	
	union Byte_Seq bs;
	bs.num = 0x12345678;
	
	/* 如果c[0]是0x12,则是大端序,如果c[0]是0x78,则是小端序 */
	printf("Byte_Seq.c[0] = 0x%x\n", bs.c[0]); //小端序
	printf("Byte_Seq.c[1] = 0x%x\n", bs.c[1]);
	printf("Byte_Seq.c[2] = 0x%x\n", bs.c[2]);
	printf("Byte_Seq.c[3] = 0x%x\n", bs.c[3]);
	
	return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值