主机字节序与网络字节序
2021/7/17 6:05:25
本文主要是介绍主机字节序与网络字节序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,一个32位整数由4 个字节组成。
内存中存储这4个字节有两种方法:一种是将低序字节存储在起始地址,这 称为小端(little-endian) 字节序;另一种方法是将高序字节存储在起始地址,这称为 大端(big-endian) 字节序。
这两种字节序之间没有标准可循,两种格式都有系统使用。比如,Inter x86、ARM核 采用的是小端模式,Power PC、MIPS UNIX和HP-PA UNIX采用大端模式。
大于一个字节类型的数据在内存中的存放有顺序,一个字节的数据没有顺序的问题。
2.网络字节序与主机字节序
网络字节序:网络字节序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类 型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字 节序采用big endian排序方式。
主机字节序:不同的机器主机字节序不相同,与CPU设计有关,数据的顺序是由cpu决 定的,而与操作系统无关。
由于这个原因不同体系结构的机器之间无法通信,所以要转换成一种约定的字节序,也● 就是网络字节序。即使是同一台机器上的两个进程(比如一 个由C语言,另-个由Java编 写)通信,也要考虑字节序的问题(JVM采用大端字节序)。
网络字节序与主机字节序之间的转换函数: htons()、 ntohs(),、 htonl()、 ntohl(), htons和ntohs完成1 6位无符号数的相互转换,htonl和ntohl完成32位无符号数的相互 转换。host to network short long
这篇关于主机字节序与网络字节序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南