Введение

Представление числа с подписью

Неприлегающая форма (НФН) числа – это уникальное представление числа с подписью, в котором ненулевые значения не могут быть соседними. Например:

(0 1 1 1)₂ = 4 + 2 + 1 = 7
(1 0 −1 1)₂ = 8 − 2 + 1 = 7
(1 −1 1 1)₂ = 8 − 4 + 2 + 1 = 7
(1 0 0 −1)₂ = 8 − 1 = 7

Все это допустимые представления числа 7 с использованием знаковых цифр, но только последнее представление, (1 0 0 −1), находится в неприлегающей форме. Неприлегающая форма также известна как каноническое представление числа с подписью.

Свойства

NAF обеспечивает уникальное представление целого числа, но главное его преимущество заключается в минимизации веса Хэмминга значения. Для обычных двоичных представлений значений в среднем половина всех битов отлична от нуля, тогда как при использовании NAF это число снижается до одной трети всех цифр. Это позволяет эффективно реализовывать сети сложения и вычитания (например, умножение на константу) в аппаратно реализованных цифровых системах обработки сигналов. Очевидно, что не более половины цифр отличны от нуля, что и послужило причиной введения NAF Г. В. Райтвейснером для ускорения ранних алгоритмов умножения, подобно кодированию Бута. Поскольку каждая ненулевая цифра должна соседствовать с двумя нулями, NAF-представление можно реализовать так, чтобы для значения, которое обычно представляется в двоичном виде с помощью m битов, требовалось максимум m + 1 битов. Благодаря своим свойствам NAF полезен в различных алгоритмах, особенно в криптографии, например, для уменьшения количества умножений, необходимых для вычисления степени. В алгоритме возведения в степень через квадраты количество умножений зависит от числа ненулевых битов. Если показатель степени задан в NAF-форме, то значение цифры 1 подразумевает умножение на основание, а значение цифры −1 – на обратную величину основания. Другие способы кодирования целых чисел, избегающие последовательных единиц, включают кодирование Бута и кодирование Фибоначчи.