java中的网络字节序

常用的字节序
Little endian:将低序字节存储在起始地址。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01 23 45 67
Byte3 Byte2 Byte1 Byte0
将在内存中按照如下顺序排放:
内存地址序号 字节在内存中的地址 16进制值
0x03 Byte3 01
0x02 Byte2 23
0x01 Byte1 45
0x00 Byte0 67
Big endian:将高序字节存储在起始地址。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01 23 45 67
Byte3 Byte2 Byte1 Byte0
将在内存中按照如下顺序排放:
内存地址序号 字节在内存中的地址 16进制值
0x03 Byte0 67
0x02 Byte1 45
0x01 Byte2 23
0x00 Byte3 01

网络字节序
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。
如果通信的一方是JAVA程序,一方是C/C++程序时,则需要在C/C++一侧使用以上几个方法进行字节序的转换,而JAVA一侧,则不需要做任何处理,因为JAVA字节序与网络字节序都是BIG-ENDIAN,只要C/C++一侧能正确进行转换即可(发送前从主机序到网络序,接收时反变换)。如果通信的双方都是JAVA,则根本不用考虑字节序的问题了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值