CBOR 负整数的基本原理



我很困惑为什么CBOR选择将负整数编码为无符号二进制数,其值定义为-1减去无符号值,而不是例如常规二进制的补码表示。除了增加负范围之外,我是否缺少一个明显的优势(IMO,与增加的复杂性相比,其价值值得怀疑(?

优点:

  1. 每个整数值只有一个允许的编码类型,因此所有编码器都将发出一致的输出。如果编码器按照规范的建议对每个值使用最短的编码,它们将发出相同的输出。
  2. 对于非负数,选择
  3. 最短的数字字段比选择有符号负数更容易,CBOR的目标是让微型物联网设备轻松传输数据。
  4. 它在每个整数编码字段宽度中容纳两倍的值,从而使数据更加紧凑。(如果整数编码不重叠,它会更紧凑,但这会明显更复杂。
  5. 在需要 bignum 扩展之前,它可以处理两倍大的负值。

相关内容

  • 没有找到相关文章

最新更新