基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序

简介:

1.字节顺序 

  字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。计算机中读取数据的时候是从低地址到高地址,存储数据时候相反!

2.主机字节序到网络字节序

  基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对int、uint16、uint32等多于1字节类型的数据,在这些嵌入式平台上应该变换其存储顺序。通常我们认为,在空中传输的字节的顺序即网络字节序为标准顺序,考虑到与协议的一致以及与同类其它平台产品的互通,在程序中发数据包时,将主机字节序转换为网络字节序,收数据包处将网络字节序转换为主机字节序

3.网络字节序

  网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端方式)排序方式。

4.例图:

目录
相关文章
|
7月前
|
缓存 容器
从一个文件中讲稿未知数目的整数。对这些整数排序,然后把它们输出到标准输出设备。选用vector、deque 还是 list?
从文件读取未知数量的整数,排序后输出。选用`std::vector`因其能高效读取大量数据至连续内存,直接使用内置排序,提升缓存效率。避免使用`std::deque`和`std::list`,前者内存管理开销大,后者排序及随机访问较慢。
62 14
交换两个数的值的方法(三种)
交换两个数的值的方法(三种)
81 1
|
前端开发 芯片
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
148 0
|
10月前
|
算法 搜索推荐 数据处理
值交换解析法(无第三方变量法)
值交换解析法(无第三方变量法)
57 0
|
10月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
94 0
|
存储 C语言
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
164 0
|
存储 编译器 C语言
计算机大端与小端的详细解析,含判断机器大小端代码
计算机大端与小端的详细解析,含判断机器大小端代码
351 0
|
C语言
复习C部分:1.设置关机程序 2.函数(strcpy,memset----替换函数;库函数;写一个函数,用该函数实现比较两个数的最大值;写一个数,交换两个整数类型的值)
复习C部分:1.设置关机程序 2.函数(strcpy,memset----替换函数;库函数;写一个函数,用该函数实现比较两个数的最大值;写一个数,交换两个整数类型的值)
106 0
|
存储 缓存 Java
字节面:什么是伪共享?
什么是伪共享?又该怎么避免伪共享的问题?
字节面:什么是伪共享?