计算机编程中的“位”概念是否类似于信息论中的“位”概念?

信息处理 信息论
2022-01-02 12:20:51

直到今天,我才知道一位是一个变量,或者是内存中的一个空间,它可以保存一个值(高)或零(低)。这是我从学习计算机编程、微处理器或数据总线等中学到的概念。

但是在开始了信息论课程之后,我发现比特是表示为消息中符号的信息内容。这是采用符号出现概率的倒数的对数(以 2 为底)计算得出的。

这两个概念是一样的吗?一方面,一位是可以存储零或一的变量。另一方面,一个比特是与发生概率为 0.5 的两个符号之一相关联的不确定性。那么,计算机编程或 ASCII 码中的 1 位是否意味着源或信息论的信息内容中的 1 位?

一点点编辑:这是我在理解这个主题时遇到困难的一件事。看,在英文字母的数据传输中,如果我们使用 ASCII 码,我们基本上用 8 位来表示每个符号。假设 a 为 00000000,b 为 00000001,等等。所以我们基本上为每个符号分配了 8 个量化级别。

但是当信息论发挥作用时,我们会考虑每个符号的概率。“E”的频率最高,“Z”的频率最低。所以平均信息内容可以归结为 3 或 4 位,对吧?

我的书说,“熵或平均信息内容是表示每个样本不失真所需的最小平均位数”。那么,在这种情况下,为了有效的数据传输,我们是否为每个符号创建最多四个量化级别?因为,平均而言,它们携带价值 4 位的信息。如果是这样,信息论中的比特与计算机编程、数据传输或 ASCII 码等中的比特不一样吗?

你可能知道我在这里显然是个菜鸟:p

3个回答

它们并不相同,但它们是相关的。特别是,如果你看一个保存个“计算机”位的计算机内存,其中每个位可以被认为是随机的并且独立于所有其他位,并且大约有 50% 的零,那么内存也大约保存了个“信息论” “位。MM

当然,通常情况并非如此:计算机位通常是相关的,而不是均匀随机的。这就是为什么它们可以被压缩。从某种意义上说,诸如 LZW(信息论术语中的“源编码器”)之类的压缩程序通过使每个计算机位保存一个信息位来工作。

编辑添加:这个例子可以使区分更清楚。考虑一个具有两个输出的无记忆源,,每个输出的概率为 0.5。显然,每条消息中的信息是一个(信息)位,但它的长度是三个(计算机)位。诸如 Huffman 算法之类的源编码器将很容易地将消息编码为,从而压缩源输出。您可以轻松地将此示例外推到生成 ASCII 编码文本的源。m1=000m2=001c1=0c2=1

请注意,对于一般的书面语言,特别是英语,没有人知道实际的源熵是什么,因为没有模型。这就是为什么存在最佳压缩大文本的竞赛的原因。没有人真正确定英语的最佳压缩算法是什么。

比特是一种计量单位,多个量以比特计量。在编程和信息论中,这并不是说不同的东西。这是记忆和信息内容在概念上代表不同的数量。

例如,我们可以使用密码“123456”。如果以 UTF-8 编码,则需要 6 * 8 = 48 位内存。对于现实世界的目的,它的信息内容大约是 10 位。位在两种情况下的含义相同,所测量的数量不同。如果压缩密码,它占用的内存量会减少,但信息内容不会改变。

一个类比:重力和电磁力等物理量都以牛顿为单位,但代表不同类型的相互作用。您可以凭经验看到单位牛顿在两种情况下都代表相同的想法 - 重力和电磁力可以相互平衡(磁悬浮)。

我希望这会有所帮助:)

在数据总线上,我们理论上可以做得比信息论说的要好。我知道如何构建一个电路,让我可以在 6 根线上并行发送 8 位。这涉及使用二极管和上拉/下拉电阻器的技巧,该技巧允许使用数字线的所有三种非燃烧状态来传输信息。6条线的3种状态,我得到729种可能的状态,这让我可以在主通道中携带EOF、INT、CLK和断开连接,并且仍然有足够的空间(这只使用了729种状态中的518种)。