CBOR负整数的基本原理

时间:2018-05-29 12:12:52

标签: encoding signed cbor

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

1 个答案:

答案 0 :(得分:1)

优势:

  1. 每个整数值只有一种允许的编码类型,因此所有编码器都会发出一致的输出。如果编码器按照规范的建议对每个值使用最短编码,则它们将发出相同的输出。
  2. 对于非负数,选择最短的数字字段比对有符号负数更容易,并且CBOR旨在使小型IOT设备易于传输数据。
  3. 它适合每个整数编码字段宽度两倍的值,从而使数据更紧凑。 (如果整数编码不重叠,将会更加紧凑,但这会更加复杂。)
  4. 在需要bignum扩展之前,它可以处理两倍大的负值。