当前位置: 首页 > news >正文

ntohl()、htonl()、ntohs()、htons()函数

一 、大端存储和小端存储

1、大端存储:在计算机中,数据是按照字节存储的,多于一个字节的数据,把高字节部分存储在低地址,把低字节部分存储在高地址,这种方式称为大端存储。
例:0x12345678这个数据,我们一般认为左边是高字节部分,右边是低字节部分,那么在采用大端存储的计算机内部的存储则为下面这样
低地址: 0x12(高字节)
>>>>>: 0x34
>>>>>: 0x56
高地址: 0x78(低字节)
即一个整型数据的首地址=高位部分(首地址=低地址)

2、小端存储:多于一个字节的数据,把高字节部分存储在高地址,把低字节部分存放在低地址。
例:0x12345678这个数据,我们一般认为左边是高字节部分,右边是低字节部分,那么在采用小端存储的计算机内部的存储则为如何下这样
低地址: 0x78(低字节)
>>>>>: 0x56
>>>>>: 0x34
高地址: 0x12(高字节)
即首地址部分=低位部分(首地址=低地址)

二、ntohl()、htonl()、ntohs()、htons()函数

网络传输通讯过程中,采用大端在前的方式进行数据发送,对于采用小端模式进行数据存储的系统,要把多字节的数据通过网络传输出去,则需要将数据的字节序进行转换,再进行发送。接收的过程亦然。
在这几个函数中n代表net网络,h代表host主机,l代表long长整型,s代表short短整型。这几个函数的作用分别为:

ntohl():将一个无符号长整形数从网络字节顺序转换为主机字节顺序

htonl():将一个无符号长整形数从主机字节顺序转换为网络字节顺序

ntohs():将一个无符号短整形数从网络字节顺序转换为主机字节顺序

htons():将一个无符号短整形数从主机字节顺序转换为网络字节顺序

如下代码

uint32 a=0x12345678;
uint32 b;
b=htonl(a);

运行的结果为b=0x78563412;

相关文章:

  • 基于ssm+vue的师生防疫登记管理系统 elementui
  • trustZone学习
  • USB转多串口设备固定串口号
  • 七牛云 OSS 文件上传demo
  • 我的VS2013版本
  • .NET DataGridView数据绑定说明
  • 商业化广告--体系学习--1
  • apk反编译和重新打包流程
  • Spring Security -- 前后端分离时的安全处理方案
  • 使用HttpServlet和@WebServlet注解
  • Arthas使用指北——命令、原理及案例
  • 简历撰写——Java与.NET(当年毕业生版本)
  • zookeeper知识点扫盲
  • UE5学习笔记 判断物体是否在相机视野内
  • 移动安全实战分享
  • 【node学习】协程
  • 【面试系列】之二:关于js原型
  • 3.7、@ResponseBody 和 @RestController
  • const let
  • IDEA常用插件整理
  • JavaScript对象详解
  • JavaScript中的对象个人分享
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • nginx 负载服务器优化
  • Node 版本管理
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Swift 中的尾递归和蹦床
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 对象管理器(defineProperty)学习笔记
  • 类orAPI - 收藏集 - 掘金
  • 理解在java “”i=i++;”所发生的事情
  • 你真的知道 == 和 equals 的区别吗?
  • 前端_面试
  • 使用agvtool更改app version/build
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • Nginx实现动静分离
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • !!Dom4j 学习笔记
  • (23)Linux的软硬连接
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (二)构建dubbo分布式平台-平台功能导图
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm码农论坛 毕业设计 231126
  • (四)汇编语言——简单程序
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • *1 计算机基础和操作系统基础及几大协议
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net Signalr 使用笔记
  • .net 微服务 服务保护 自动重试 Polly
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net组件程序设计之线程、并发管理(一)