【问题标题】:Length-Value encoding长度值编码
【发布时间】:2019-10-05 12:58:39
【问题描述】:

我有一个作业问题。我不明白给出的例子。因为一个字节怎么可能是 255 个字节呢? 我认为,因为这个例子,(a)的答案是 510 字节,而(b)的答案是 128。但是,是的,我很困惑.. 有人可以解释一下吗?

另一种编码方案是长度值编码,其中每个字符串被编码为 两个元素的序列: L:一个固定长度的值,以字节为单位指定字符串的长度 V:字符串本身 然而,L 的长度限制了 V 的最大长度。例如,如果 L 是字节 V 不能超过 255 个字节。 知道了这个限制,有多少值可以使用 LV 编码进行单射编码 (a) 如果长度使用 2 个字节编码? (b) 长度是否使用 Length-Value 编码,长度为 4 位?

【问题讨论】:

    标签: encode


    【解决方案1】:

    并不是说一个字节是 255 个字节。就是说 V(被编码的字符串)不能超过 255 个字节,如果它的长度 (L) 由单个字节 2^8 (0-255) 指定。如果您使用更多两个字节,您将能够指定最长为 2^16 (0-65535) 个字符的字符串。

    例如,如果我们想对值 Example 进行编码。我们将写入它的长度 (L),然后写入值 (V)。 IE。我们将7写成一个字节,后面跟着单词'E''x''a''m''m''l''e'中字符的ASCII值的字节.如果我们只使用一个字节作为长度,那么我们就不能编码一个很长的字符串,因为一个字节的范围是 0-255 或 1-256 (256 = 2^8),因为一个字节只包含 8 位。

    它想要的答案是 (a) (2^16 - 1) = 65535 和 (b) (2^4 - 1) = 15。 p>

    但是,这个问题被误认为最大长度是 255。它应该是 256,除非你希望能够指定零长度的字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多