c++ - boost::endian 和非 1 字节原子字节顺序?

标签 c++ c++11 boost bit endianness

我已阅读 Wikipedia字节顺序主要分为三种类型:

  • 大端
  • 小端
  • 中端

boost::endian 关注两个第一,因为:

PDP-11 and the other middle endian approaches are interesting historical curiosities but have no relevance to today's C++ developers.

但我也阅读了 Wikipedia有小端和大端的 8 位16 位 版本(也许还有其他版本?)。

  • boost::endian 是否管理两个版本?
  • 如果是,怎么做?
  • 如果不是,为什么?

最佳答案

我对 boost 库知之甚少,但字节序几乎遍及计算机中的所有事物,在尝试编写字节序中立的代码时可能会让人头疼。如果你有一个 128 位整数,小端计算机的指针将指向低位,而大端指针将指向高位。根据数据类型,指针可以位于大端系统中内存上下的任何位置。由于小端系统总是指向低位字节,并且没有小于字节的数据类型,类型强制在小端机器上变成了空操作。

关于c++ - boost::endian 和非 1 字节原子字节顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194818/

相关文章:

c++ - Boost多边形库 bool 函数计算时间

c++ - 对成员或临时成员的常量引用

c++ - 为什么当远远超过 CPU 缓存大小时内存访问时间会增加

c++ - 什么时候将引用进行零初始化?

c++ - boost::ireplace 是否可以像基本字符一样对待特殊字符? (例如 'ź' 为 'z' )

c++ - 编译时出现 make_unique 错误

c++ - 以 std::function 作为值的多重映射

c++ - c++构造函数的奇怪行为

boost - 为什么 ld 找不到 lboost_regex?

c++ - 将函数限制为特定数据类型的正确方法