为什么位向量 a = [01101001] 编码集合 A = {0, 3, 5, 6}?

问题描述 投票:0回答:1

我正在阅读《计算机系统:程序员的视角》,但我不明白为什么位向量 a = [01101001] 编码集 A = {0, 3, 5, 6}?

我做了一些谷歌搜索,但没有找到任何有用的东西。我还尝试过 ChatGPT 和此视频:https://www.youtube.com/watch?v=SYoJ6gUXZvc。不过,我还没弄清楚......也许在弄清楚这个问题时存在一些隐藏的先决条件,比如离散数学?

bit-manipulation computer-science bit bitwise-operators
1个回答
0
投票

编码是“我们”在计算机世界和非计算机世界之间进行转换时做出的选择。

例如,在一个关于光的项目中,

0
可能意味着
daytime
,而
1
可能意味着
night time
。在该项目的背景下,这将是这些概念的有效编码。

在您的示例中,上下文是关于整数集的。

一种“自然”编码是拥有位集的每一位

set
(如果相应的索引存在于该集合中)。那么关于顺序有 2 个同样自然的“选择”。

一种方法是对位进行索引:[0, 1, 2, 3, 4, 5, 6, 7, ...]。 另一种是将它们索引为 [7, 6, 5, 4, 3, 2, 1, 0]。 请注意,如果使用第二种方案,设置

{0, 3, 5, 6}
的位会产生
[01101001]
,即您的确切数据。

这纯粹是一种选择,尽管是一种相当“自然”的选择。根据上下文和想要对集合执行的操作,不同的编码选择可能会变得更好。

© www.soinside.com 2019 - 2024. All rights reserved.