c++ - 执行字节交换意味着什么?

标签 c++

<分区>

有很多地方讨论如何进行不同类型的字节交换,但我无法轻易找到解释概念和字节交换需要如何发生的一些典型示例的地方。

所以问题来了:什么是字节交换,我为什么/什么时候需要这样做?

如果示例是解释的好方法,那么如果它们位于标准 C++ 中,我会很高兴。感谢引用书籍,优先考虑 Lippman 或 Pratas C++ primers,因为这些是我可用的。

最佳答案

如果我对你的问题的理解正确,你说的是 big endianlittle endian 的转换和返回。

这是因为一些微处理器使用 little endian 格式来引用内存,而其他微处理器使用 big endian 格式。

例如,互联网上的字节流是big endian,而您的intel CPU 是little endian 格式。

因此,为了从网络到 CPU 或 CPU 到网络的转换,我们需要一种称为字节交换的转换机制。

操作系统提供 ntohl()htonl() 函数来执行此操作。

关于c++ - 执行字节交换意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802605/

相关文章:

c++ - 基于其他参数的默认值

c++ - 在单独的线程中加载库

c++ - 无法编译不完整的类型;循环依赖

c++ - 是否可以直接识别覆盖整个堆栈的错误代码?

c++ - boost::uint64_t 的字符串因 lexical_cast 和 stringsteam 而失败

c++ - FreeBSD 上的 R feather 包编译错误(g++)

c++ - 在opencv c++中绘制旋转矩形

c++ - 使用反转距离的 K 均值聚类

c++ - boost 图形库 : Prevent DFS from visiting unconnected nodes

c++ - 在 Rcpp 中用随机生成的值填充 vector 的一部分