混淆字节序:是指位还是字节?

4
我从教程中提取了以下内容:
小端序是我们在本文档中要使用的序列,除非特别说明,否则您应该假定任何文件都使用小端序。另一种选择是大端序。那么让我们看一个例子。取以下流或8位10001110。如果您迄今为止一直在跟随本文档,您会很快将这个8位数值计算为1x2^7 + 0x2^6 + … + 1x2^1 + 0x2^0 = 142。这是小端序的一个例子。然而,在大端序中,我们需要按相反的方向读取数字1x2^0 + 0x2^1 + … + 1x2^6 + 0x2^7 = 113
这是否正确?
我曾经认为字节(而不是位)的顺序有关于字节序。
3个回答

5

在内存/存储的情况下,字节序通常涉及端点性(endianness)。例如说最不重要的比特“优先出现”是什么意思?

在某些情况下,比特端点性也是相关的,例如在通过串行总线发送数据时。


在图形内存中,考虑位序也是有用的。如果您想要在同一空间中存储1、8、16或32位像素,最简单的方法是将所有内存视为从零开始的位序列,因此第一个字节(在8位模式下)是0到7位的位序列,左侧为0。(哪个位最重要是另一个选择。) - Timothy Miller

1

你说得对 - 你那里的引用是垃圾,以我个人之见。


1

重新排序位是没有意义的,而且这样做可能会让人非常困惑。 CPU 不读取单个位,它们一次读取字节或字节组合,因此字节顺序很重要。

当它们存储由多个字节组成的数字时,可以按从左到右的顺序存储它,使高位字节在内存中最低,也可以按从右到左的顺序存储,使低位字节在内存中最低。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接