boost::endian 和非 1 字节原子字节顺序?
boost::endian and non-1 byte atomic 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-bit
和 16-bit
版本(也许还有其他版本?)的小端和大端。
boost::endian
是否管理两个版本?
- 如果是,怎么样?
- 如果不是,为什么?
我对 boost 库知之甚少,但字节序几乎遍及计算机中的所有内容,在尝试编写字节序中立的代码时可能会让人头疼。如果你有一个 128 位整数,小端计算机的指针将指向低位,而大端指针将指向高位。根据数据类型,指针可以位于大端系统中内存上下的任何位置。由于小端系统总是指向低位字节,并且没有小于字节的数据类型,类型强制在小端机器上变成了无操作。
我在 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-bit
和 16-bit
版本(也许还有其他版本?)的小端和大端。
boost::endian
是否管理两个版本?- 如果是,怎么样?
- 如果不是,为什么?
我对 boost 库知之甚少,但字节序几乎遍及计算机中的所有内容,在尝试编写字节序中立的代码时可能会让人头疼。如果你有一个 128 位整数,小端计算机的指针将指向低位,而大端指针将指向高位。根据数据类型,指针可以位于大端系统中内存上下的任何位置。由于小端系统总是指向低位字节,并且没有小于字节的数据类型,类型强制在小端机器上变成了无操作。