<分区>
有很多地方讨论如何进行不同类型的字节交换,但我无法轻易找到解释概念和字节交换需要如何发生的一些典型示例的地方。
所以问题来了:什么是字节交换,我为什么/什么时候需要这样做?
如果示例是解释的好方法,那么如果它们位于标准 C++ 中,我会很高兴。感谢引用书籍,优先考虑 Lippman 或 Pratas C++ primers,因为这些是我可用的。
标签 c++
<分区>
有很多地方讨论如何进行不同类型的字节交换,但我无法轻易找到解释概念和字节交换需要如何发生的一些典型示例的地方。
所以问题来了:什么是字节交换,我为什么/什么时候需要这样做?
如果示例是解释的好方法,那么如果它们位于标准 C++ 中,我会很高兴。感谢引用书籍,优先考虑 Lippman 或 Pratas C++ primers,因为这些是我可用的。
最佳答案
如果我对你的问题的理解正确,你说的是 big endian
到 little endian
的转换和返回。
这是因为一些微处理器使用 little endian
格式来引用内存,而其他微处理器使用 big endian
格式。
例如,互联网上的字节流是big endian
,而您的intel CPU 是little endian
格式。
因此,为了从网络到 CPU 或 CPU 到网络的转换,我们需要一种称为字节交换的转换机制。
操作系统提供 ntohl()
和 htonl()
函数来执行此操作。
关于c++ - 执行字节交换意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802605/