将网络字节顺序(大端)转换为小端

2024-01-18

我发现以下功能MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/ms740069%28v=vs.85%29.aspx它转换一个unsigned long从网络字节到unsigned long按照主机字节顺序,即按照小尾数法定义为:

u_long WSAAPI ntohl(
       _In_  u_long netlong
);

MSDN文档说它可以转换32位数字。但自从我读过 C++ 以来long and int不一样,即long不保证是 32 位或相同大小的整数INT_MAX.

所以,我想知道是否有一个类似的函数,它采用 32 位值,例如unsigned int代替unsigned long?


The 文档 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740069%28v=vs.85%29.aspx具体说ntohl's netlong参数是一个32位值:

净长 [in]

TCP/IP 网络字节顺序中的 32 位数字。


我读到 long 和 int 不一样,即 long 不一样 保证为 32 位或与整数 INT_MAX 大小相同。

你说得对——在标准C++ a long is 不保证 https://stackoverflow.com/questions/4329777/is-long-guaranteed-to-be-at-least-32-bits可以是任何特定的尺寸,但它必须是at least32 位。

然而,由于我们讨论的是字节序转换函数,所以我们在这里讨论的是特定于平台的细节。我们现在需要深入了解什么是long is 在Windows下。而在Windows下,一个很长的是 32 位的 http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx:

LONG

32 位有符号整数。范围为 –2147483648 到 2147483647 十进制。该类型在 WinNT.h 中声明如下:

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

将网络字节顺序(大端)转换为小端 的相关文章

随机推荐

  • 语法高亮的正确正则表达式是什么?

    使用 NSRegularExpression 进行语法高亮的正确正则表达式是什么 必须通过以下测试 code comment code comment code code string code code comment code code
  • FlipView 控件在 Windows Phone 8 SDK 中不可用

    FlipView 控件在 Windows Phone 8 SDK 中不可用 实现类似功能的替代方法是什么 这里有几个选项 如果您只想显示固定数量的 页面 您可以使用Panorama http msdn microsoft com en us
  • 赛普拉斯抛出安全错误

    我目前正在使用 Chrome 74 运行 并尝试使用 Cypress 来测试我的应用程序中的样式指南 当我加载 Cypress 时 它会抛出此错误 安全错误 阻止了来源为 http localhost 3000 的框架 访问跨源框架 请告诉
  • 您为网站推荐哪种 PHP CMS? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在建立一个网站 需要使用 CMS 如果我使用已经制作好的 CMS 我需要能够轻松扩展它 您有推荐的特定 CMS 还是我应该自己制作一个 CM
  • Bootstrap:如何更改容器的宽度?

    我使用Twitter Bootstrap开发了一个具有固定容器类的网站 但现在客户希望网站宽度为1000px而不是1170px 我不使用 less 文件 有没有快速的方法来解决这个问题 这是解决方案 media min width 1200
  • 如何在一个文件中定义一个 C 函数,然后从另一个文件中调用它?

    如果我在文件中定义一个函数func1 c 我想从文件中调用它call c 我怎样才能完成这个任务 您可以在文件中放置该函数的声明func1 h 并添加 include func1 h in call c 然后你会编译或链接func1 c a
  • JMS Serializer 忽略 Knp Paginator 的映射

    我在使用 JMS 序列化程序排除某些 KNP Paginator 属性时遇到问题 首先 它包含在composer json中 jms serializer bundle 0 13 knplabs knp paginator bundle 2
  • 从应用程序外部记录按键(VB.net)[重复]

    这个问题在这里已经有答案了 我正在制作一个程序 它使用键盘记录器的功能来确定趋势 问题是我无法制作键盘记录器 我已经完成了大部分内容 但当表单失去焦点时我无法按下按键 我见过有人提到键盘和消息挂钩 但我找不到任何示例或理解任何有关它的文档
  • 如何让 JVM 使用服务器的最大(全部剩余)内存

    我有一个 DFS 算法 java 控制台应用程序 当提供更多内存时 它运行得更快 只是一个 DFS 算法应用程序 既没有 I O 也没有其他外部 JVM 资源使用 它只消耗CPU和内存 该应用程序可以在 1GB 内存下运行 但在 2GB 内
  • ASP.NET Razor 页面下拉列表

    div class form group Html LabelFor model gt model CountyId htmlAttributes new class control label col md 2 div class col
  • numpy 二项式随机数效率低吗?

    我一直在从不同的分布中采样随机数 并且刚刚意识到 numpy 二项式随机数与其他分布相比有多慢 例如 timeit for x in range 100 np random binomial 100 0 5 10000 loops best
  • 单击后退按钮时执行代码 (REACTJS)

    例如 当我浏览一个页面到另一页面时 将执行以下代码 当我单击类别页面列表中的产品时 下面的代码设置一个会话存储键 该密钥将具有类别页面的位置 已滚动多少页面 因此 当产品页面打开时 它会将其密钥保存在会话中 如果再次访问同一类别页面 则会恢
  • 级别的特定记录器

    我正在使用 log4j 进行日志记录 我有一个场景 我必须对不同的严重性使用单独的日志记录 例如 对于包 foo 我必须在控制台中打印严重性为 ERROR 的消息 而我必须在日志文件中打印严重性为 WARN 的消息 我如何配置我的 log4
  • 如何在 PHP 中创建 websockets 服务器

    我正在寻找一个简单的代码来创建 WebSocket 服务器 我找到了 phpwebsockets 但它现在已经过时并且不支持最新的协议 我尝试自己更新 但似乎不起作用 php q
  • 如何在 NodeJS 中使用套接字(socket.io)找到客户端的响应时间(延迟)?

    我正在尝试使用 NodeJS 创建一个多人游戏 并且我想同步客户端之间的操作 查找客户端和服务器之间的延迟 请求返回客户端所需的时间 的最佳方法是什么 我的第一个想法是客户端 1 可以发送带有 is 请求的时间戳 因此当客户端 2 收到客户
  • 如何在 JSON 对象中获取 JSON 数组?

    这是我的 JSON data id 1 Name Choc Cake Image 1 jpg Category Meal Method Ingredients name 1 Cup Ice name 1 Bag Beans
  • 将属性从视图模型绑定到 Aurelia 中的自定义元素

    UPDATE 其他人报告说这个样本对他们来说效果很好 听起来好像我做错了什么 但我不再有代码 所以我无法检查问题出在哪里 原问题 我有以下自定义元素以及以下视图模型和视图 import bindable from aurelia frame
  • 如何在 AngularJS 中添加复选框的 ID?

    我正在开展一个学校项目 用户可以选择他 她可以从学校的计算机服务办公室借用哪些物品 我已经填写了申请表 学生 教师可以在其中插入他们的个人资料信息 我遇到了有关 AngularJS 中复选框的问题 我需要对复选框的 ID 进行总计 求和 以
  • 如何在 Android 中将文本更改为粗体?

    你如何改变文本 字体Android 中的设置TextView 例如 如何制作文本bold 要执行此操作 请在layout xml file android textStyle 例子 android textStyle bold italic
  • 将网络字节顺序(大端)转换为小端

    我发现以下功能MSDN http msdn microsoft com en us library windows desktop ms740069 28v vs 85 29 aspx它转换一个unsigned long从网络字节到unsi