主机字节序:多于一个字节的数据类型(多字节数据类型)在内存中的存放顺序叫主机字节序。

最常见的字节序有两种:小端字节序和大端字节序。

小端字节序:Little Endian,简称LE,将数据的最低字节放在内存的起始位置。也就是说,内存地址较低的字节位存放数据的低位字节,内存地址较高的字节位存放数据的高位字节。可以简记为:高高低低。

大端字节序:Big Endian,简称BE,将数据的高字节放在内存的起始位置。也就是说,内存中地址较低的位存放数据的高位字节,内存地址较高的字节位存放数据的低位字节。可以简记为:高低低高。

术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存储在起始地址就是小端字节序;大端存储在起始地址就是大端字节序。

网络字节序标准规定为大端字节序。

不同平台上会对主机字节序进行转化,成为网络字节序后再进行传送,到主机后再转化为主机字节序。

#include <netinet/in.h>uint16_t htons(uint16_t host16bitvalue);
uint32_t htonl(uint32_t host32bitvalue);
均返回:网络字节序值uint16_t ntohs(uint16_t net16bitvalue);
uint32_t ntohl(uint32_t net32bitvalue);
均返回:主机字节序值

字节序及字节排序函数相关推荐

  1. Linux 网络编程详解一(IP套接字结构体、网络字节序,地址转换函数)

    IPv4套接字地址结构 struct sockaddr_in {uint8_t sinlen;(4个字节)sa_family_t sin_family;(4个字节)in_port_t sin_port ...

  2. 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐

     深入理解字节,字节序与字节对齐 一 总述 作为一个职业的coder玩家,首先应该对计算机的字节有所了解. 我们经常谈到的2进制流,字节(字符)流,数据类型流(针对编程),结构流等说法,2进制流,0和 ...

  3. 字节序 主机字节序与网络字节序互相转换

    目录 1.什么是字节序? 2.字节序分类 3.为什么要有大端字节序和小端字节序? 4.主机字节序和网络字节序 5.主机字节序与网络字节序的转换 6.怎么判断自己的主机是小端字节序还是大端字节序呢? 7 ...

  4. 计算机网络——网络字节序(大端字节序(Big Endian)\小端字节序(Little Endian))

    网络字节序 网络字节序 1.网络字节序 (Network Byte Order)和本机转换 2.字节序转换函数 网络字节序 1.网络字节序 (Network Byte Order)和本机转换 1.大端 ...

  5. 网络字节序与地址转换函数

    网络字节序是大端编码, 编码方式有两种: ①小端编码:高位数字存放在高地址字节中,如0x1234,小端编码机器将12存放在高位地址字节,34存放在低地址字节中,将其转化为1字节的char时,高地址字节 ...

  6. 网络字节序,主机字节序,地址转换函数

    #include "../apue.h" int main(void){ //验证当前平台属哪种字节序 unsigned int x=0x12345678; unsigned ch ...

  7. 网络字节序 —— 主机字节序 (Socket编程) 转

    在对IP地址结构体SOCKADDR_IN赋值的时候,经常会用到下列的函数htonl,htons,inet_addr,与之相对应的函数是ntohl,ntohs,inet_ntoa.查看这些函数的解析,会 ...

  8. 大端字节序小端字节序(网络字节序主机字节序)

    大端字节序:整数的高位字节存储在内存的低地址处,低字节存储在内存的高地址处. 小端字节序:整数的高位字节存储在内存的高地址处,低字节存储在内存的低地址处. 一般pc大多采用小端字节序,也称为主机字节序 ...

  9. 大端字节序与小端字节序 (网络字节序与主机字节序)

    大端字节序与小端字节序 1. 简介 2. 判断机器字节序(C/C++) 3. 主机字节序与网络字节序的转换 4. IP地址与网络字节序的转换 1. 简介 字节序分为大端字节序(big endian)和 ...

最新文章

  1. MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...
  2. 区块链BaaS云服务(16)天德链TDBC“泰山沙盒系统”
  3. 一个用于读unicode文本的迭代器(iterator)
  4. 微信开发系列之一 - 微信公众号开发的开发环境搭建
  5. python3(十一)内置模块和类型转换
  6. Scrapy 教程(十)-管道与数据库
  7. 有两个python怎么停用其中一_如何在python中停止另一个已经运行的脚本?
  8. react 代码编写原则_如何编写易读的React代码— 10种编码风格技巧
  9. C++——override
  10. shell编程入门步步高(七、流程控制)
  11. zblock 结构_偷窥Data block 的物理结构
  12. 搭建私域流量池实施落地——四大运营步骤
  13. DE22 Using Laplace Transform to Solve ODEs with Discontinuous Inputs
  14. Oracle Tablespace Transportation
  15. 潘多拉 搭建 php服务器,OpenWrt/LEDE/潘多拉固件4G网卡上网之【HiLink模式上网教程】...
  16. matlab与螺旋桨,基于Matlab的船用螺旋桨计算机实时仿真及GUI设计
  17. 计量经济学搭建模型总结
  18. 泛微 E9开发视频教程
  19. plsql误删除数据,怎么恢复?
  20. BZOJ[2827]千山鸟飞绝 线段树

热门文章

  1. Hibernate 笔记 HQL查询
  2. object references an unsaved transient instance - save the transient instance before flushing .
  3. 零基础逆向工程28_Win32_02_事件_消息_消息处理函数
  4. continue和pass測试
  5. php变量与数组相互转换的方法(extract与compact
  6. NetPayClient for PHP使用说明
  7. 使用Spring Security3的四种方法概述
  8. iOS开发学习之MapKit - 获得在MapView(地图)中显示多个标记的区域(MKCoordinateRegion)...
  9. Java读书笔记(4)-多线程(二)
  10. vue中render: h = h(App)的详细解释