Обоснование отрицательных целых чисел CBOR - PullRequest
0 голосов
/ 29 мая 2018

Меня смущает, почему CBOR выбирает кодирование отрицательных целых чисел в виде двоичных чисел без знака со значением, определенным как -1, минус значение без знака, например, вместо представления регулярного дополнения до двух.Есть ли очевидное преимущество, которое я упускаю, кроме увеличенного отрицательного диапазона (который, IMO, имеет сомнительную ценность в сравнении с повышенной сложностью)?

1 Ответ

0 голосов
/ 29 августа 2018

Преимущества:

  1. Существует только один разрешенный тип кодирования для каждого целочисленного значения, поэтому все кодеры будут выдавать согласованный вывод.Если кодеры используют самую короткую кодировку для каждого значения в соответствии с рекомендациями спецификации, они будут выдавать идентичные выходные данные.
  2. Выбор неотрицательных числовых полей проще для неотрицательных чисел, чем для отрицательных чисел со знаком, и CBOR стремитсядля крошечных устройств IOT для быстрой передачи данных.
  3. Он вмещает вдвое больше значений в ширину поля каждого целочисленного кодирования, что делает данные более компактными.(Было бы еще более компактно, если бы целочисленные кодировки не перекрывались, но это было бы заметно сложнее.)
  4. Он может обрабатывать вдвое большее отрицательное значение, прежде чем потребуется расширение bignum.
...