C/C++ —— 小端转大端函数的使用

2023-05-16

函数说明

uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
/*
h表示host,n表示network,l表示32位长整数,s表示16位短整数。
如果主机是小端字节序,这些函数将参数做相应的大小端转换然后返回,如果主机是大端字节序,这些函数不做转换,将参数原封不动地返回。
*/

windows下

如果是VS,包含头文件及ws2_32.lib库

#include <winsock.h> 
#pragma comment(lib, "ws2_32.lib")

如果是QtCreator,包含头文件及ws2_32.lib

.pro中:

LIBS += -LC:\Users\HHT\Desktop\serialPort\ -lWS2_32

其中,C:\Users\HHT\Desktop\serialPort\ 是ws2_32.lib所在路径。

cpp文件:

#include <winsock.h>

测试代码:

	unsigned short test1 = htons(0xffee);
	cout << 0xffee << endl;
	cout << test1 << endl;//转换后为0xeeff
	unsigned int test2 = htonl(0xaaeeeeee);
	cout << 0xaaeeeeee << endl;
	cout << test2 << endl;//转换后为0xeeeeeeaa


Linux(Ubuntu)下

在QtCreator中测试

头文件

#include <arpa/inet.h>

测试代码:

    qDebug()<<"htons:"<<htons(0xffee);
    qDebug()<<"htonl:"<<htonl(0xaaeeeeee);

判断系统种变量高\低字节在前

    #include <stdio.h>
    #include <memory.h> 
    void main()
    {
        int a=10;
        short b;
        memcpy(&b,&a,2);
        printf("%d\n",b);
    }

参考

大端模式和小端模式

发送到串口的数据,串口接收是相反的?

详解C语言的htons函数

大小端及网络字节序

字节顺序的问题(高位在前&低位在前)

如何判断变量在内存中如何放置的?低位在前还是高位在前

高低字节序转换(htonl、ntohl、 htons、ntohs函数)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++ —— 小端转大端函数的使用 的相关文章

  • C/C++Linux服务器开发 一、磁盘存储链式的B树与B+树

    在前一篇博客中我们分析了 随处可见的红黑树 xff0c 相信大家都有了一定的了解 想了解的朋友可以去上面瞅瞅呢 而今天我们就要介绍适合磁盘存储的B树 b树的介绍 以及性质网上有很多 xff0c 不是很了解得可以先找找 xff0c 要知道B树
  • QWidget指定父类设置样式无效的解决方案

    第一种 xff1a 在派生的类种重写事件 xff0c 并添加下面几段代码 void NEWWidget paintEvent QPaintEvent QStyleOption opt opt init this QPainter p thi
  • Qt局域网聊天(群聊和私聊)

    本次设计是一个简易的局域网聊天 xff0c 功能设计主要分为群聊和私聊两部分 xff0c 每部分都支持基础聊天以及文件传输功能 参考了 Qt及Qt Quick开发实战精解 中群聊实例 xff0c 在群聊的基础设计了私聊这部分内容以及其他一些
  • 基于Qt、FFMpeg的音视频播放器设计一(准备环境)

    前言 xff1a 整个项目的源代码 https download csdn net download hfuu1504011020 10672140 最近刚完成基于Qt FFMpeg的音视频播放器相关C 43 43 程序 xff0c 实现了
  • 基于Qt、FFMpeg的音视频播放器设计二(FFMpeg视频处理)

    在上一篇中我们介绍了如何在VS2013中配置文件以及FFMpeg的开发环境准备 xff0c 本篇我们说下视频处理的原理以及实现 对于视频的处理我们这里对它分开总结 xff0c 不然看起来会显得很冗余复杂 xff0c 不易理解 主要分为以下几
  • 基于Qt、FFMpeg的音视频播放器设计三(Qt界面设计及OpenGL绘制视频)

    本部分总结了一下界面绘制和OpenGL绘制视频 xff0c 由于使用的是Qt的openGL xff0c 功能上没有那么复杂 xff0c 实现起来也比较简单 xff0c 毕竟人家已经给封好的 xff0c 完整的代码中使用OpenGL绘制视频
  • 基于Qt、FFMpeg的音视频播放器设计四(视频播放进度控制)

    上面介绍了如何使用opengl绘制视频和Qt的界面设计 xff0c 也比较简单 xff0c 现在我们看下如何控制视频播放及进度的控制 xff0c 内容主要分为以下几个部分 1 创建解码线程控制播放速度 2 通过Qt打开外部视频 3 视频总时
  • VS2008中Unicode编码转UTF-8编码

    今天在pc客户端传数据 Json格式 给服务端时 在存储到数据库 Mysql 时总是出现乱码现象 xff0c 使用的是http协议 xff0c 以及json的解码 后一篇说明 这里我们先说下转码 在vs2008中编码方式有Unicode编码
  • 串口显示乱码的原因总结

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • Linux出现Input/output error

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • 错误 expected '}' before ' ' token

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • 浅谈C语言中的布尔(bool)类型

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • C++类成员空间分配和虚函数表

    C 43 43 类成员空间分配和虚函数表 xff0c 非常详细的一篇文章 xff0c 受益匪浅 https www cnblogs com secondtonone1 p 7205108 html utm source 61 itdadao
  • 外部时钟与内部时钟区别 作用 使用条件

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • Ghostscript的介绍和移植

    关于ghostscript 以下简称gs Gs是一个地下工作者 xff0c 一般用户不熟悉它 xff0c 因为它上不和用户直接打交道 xff0c 下不直接接触打印机 但是在打印工作中它却扮演了极为重要的解色 一般从用户常见文件如图片或者wo
  • PPPoE on Android

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow P
  • 文件编程 创建目录mkdir 函数

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow L
  • VFY unable to resolve virtual method Landroid/support/v4/

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow 使
  • CUPS移植记录

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow C
  • gazebo多机器人仿真和move_base,diff_drive等gazebo包配置

    gazebo中的多机器人仿真指的是在gazebo中加入多个urdf xff0c 并控制机器人运动 下面是我总结的一些名称的命名规律 1 joint名称 在spawn model中 xff0c 通过 model model name添加参数

随机推荐

  • Golang语言移植-ARM开发环境搭建

    开发环境介绍 主机操作系统 xff1a Ubuntu14 04 64位目标平台 xff1a IMX 6Q ARM Cortex A9内核交叉工具链 xff1a arm poky linux gnueabi xff0c gcc4 9 1Go版
  • #每周一篇论文4#[感知]毫米波雷达与摄像头联合标定

    文章目录 源代码下载系列其他资源一 坐标系说明1 1 摄像头相关坐标系1 2 毫米波雷达相关坐标系1 3 GPS相关坐标系1 4 车体相关坐标系1 5 其他坐标系1 5 1 左右手坐标系 二 毫米波和摄像机联合标定2 1 毫米波 O X r
  • 单目测距 视觉测距

    文章目录 单目测距在kitti数据集中的测试结果C 43 43 工程原理代码注释 其他视觉测距算法 基于相似三角形的单目测距算法原理代码 参考资料 单目测距 在kitti数据集中的测试结果 C 43 43 工程 C 43 43 工程代码下载
  • python json 解析

    coding utf 8 import sys os re class JsonBaseType single type 61 0 object type 61 1 array type 61 2 class ParseException
  • proto_cmake_test

    proto cmake test Proto与CMAKE结合编译源代码 工程编译 span class token function cd span build cmake span class token punctuation span
  • Opencv获取指定时间内的视频片段以及帧

    文章目录 源码编译运行 源码 span class token comment gt File Name ddd cpp gt Author gt Mail 1 64 163 com gt Created Time 2022年06月17日
  • Opencv将目录下的图片存储为视频

    文章目录 源码编译运行 源码 span class token comment gt File Name main cpp gt Author gt Mail 1 64 163 com gt Created Time 2022年06月17日
  • 机器学习之svm---车牌识别

    目标 团队 承接嵌入式linux软硬件开发 机器视觉 图像处理 网络流等项目 微信号 xff1a hgz1173136060本文档尝试解答如下问题 如何使用OpenCV函数 CvSVM train 训练一个SVM分类器 xff0c 以及用
  • I2C调试工具

    1 I2C调试工具 i2c tools工具是开源I2C调试工具 xff0c 具有获取I2C总线挂载的设备列表及设备地址 xff0c 可对指定设备指定寄存器进行读写的功能 ubuntu安装 xff1a apt get install libi
  • Ubuntu18版本安装ROS

    最近不小心把虚拟机里的ROS弄坏了 xff0c 导致Linux都无法使用 也忘了快照导致所以软件重新安装 xff0c 在这里给大家分享一下ubuntu18版本如何安装ros以及我安装中出现的问题如何进行解决 注 xff1a 不同的ubunt
  • ZED相机快速使用指南

    1 安装SDK ZED SDK 3 8 Download Stereolabs 2 安装ros GitHub stereolabs zed ros wrapper ROS wrapper for the ZED SDK 其他教程 xff1a
  • vscode:前进后退快捷键

    1 xff09 后退 xff1a alt 43 2 xff09 前进 xff1a alt 43
  • git: tag 和 branch 的区别

    前言 tag 是什么 tag 翻译过来是标签的意思 xff0c 顾名思义 xff0c 标签是为了标记某种事物 tag 是 Git 版本库的一个快照 xff0c 指向某个 commit 的指针 tag 的好处 tag 的存在 xff0c 是因
  • QApplication a(argc,argv);崩溃

    Microsoft Visual C 43 43 Debug Library Debug Error Program de mytoolkit mytoolkit mytoolkit Win32 Debug mytoolkit exe Mo
  • jetson Xavier nx安装torch和torchvision,并解决解决版本不匹配(报错RuntimeError: Couldn‘t load custom C++ ops)的问题

    目录 1 安装torch 2 安装torchvision 3 验证是否安装成功 4 错误记录 5 torch和torchvision网盘链接 首先 xff0c torch和torchvision都不能直接pip安装 xff0c 以下的演示是
  • C++ 数据结构:DS顺序表--合并操作

    题目描述 建立顺序表的类 xff0c 属性包括 xff1a 数组 实际长度 最大长度 xff08 设定为1000 xff09 已知两个递增序列 xff0c 把两个序列的数据合并到顺序表中 xff0c 并使得顺序表的数据递增有序 输入 第1行
  • ubuntu安装多个版本python

    背景 xff1a 本地环境 Ubuntu 22 04 64 bit xff0c 默认安装python3 10 6 xff0c 未安装pip venv 需求 xff1a 安装python3 8 xff0c 并安装两版本对应pip xff0c
  • socket编程中recv()和read()的使用与区别

    recv和read相似 xff0c 都可用来接收sockfd发送的数据 xff0c 但recv比read多了一个参数 xff0c 也就是第四个参数 xff0c 它可以指定标志来控制如何接收数据 1 recv 原型 xff1a ssize t
  • stm32printf函数的串口输出代码

    stm32f103串口一与串口二printf函数输出 因项目需要特意配置了该段代码 xff0c 不喜勿喷 xff0c 纯属个人笔记 对于串口的代码网上也是很多 xff0c 无非是配置问题 xff0c 该代码是基于stm32f103c8t6来
  • C/C++ —— 小端转大端函数的使用

    函数说明 uint32 t htonl uint32 t hostlong uint16 t htons uint16 t hostshort uint32 t ntohl uint32 t netlong uint16 t ntohs u