Кіріспе

Қолтаңбалы цифрлық бейнелеу

Санның жанындас емес түрі (NAF) – бұл санның бірегей қолтаңбалы цифрлық бейнелеуі, онда нөлдік емес мәндер қатарынан орналаса алмайды. Мысалы:

(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 қолданғанда бұл көрсеткіш барлық цифрлардың үштен біріне дейін төмендейді. Бұл аппараттық цифрлық сигналдарды өңдеуде қосу/алу желілерін (мысалы, константаға көбейту) тиімді жүзеге асыруға мүмкіндік береді. Әрине, цифрлардың көп дегенде жартысы нөлдік емес, осы себепті Г. В. Райтвейснер оны Бут кодтау сияқты ерте көбейту алгоритмдерін жылдамдату үшін енгізді. Кез келген нөлдік емес цифр екі 0-ге іргелес болуы керек болғандықтан, NAF бейнелеуін жүзеге асыру үшін, әдетте m битпен екілік түрінде бейнеленетін мән үшін тек m + 1 бит қана қажет болады. NAF-тың қасиеттері оны әртүрлі алгоритмдерде, әсіресе криптографиядағы кейбір алгоритмдерде пайдалы етеді; мысалы, экспоненталауды есептеу үшін қажетті көбейтулер санын азайту үшін. Экспоненталауды квадраттау алгоритмінде көбейтулер саны нөлдік емес биттер санына байланысты. Егер экспонента NAF түрінде берілген болса, 1 цифрлік мәні негізге көбейтуді, ал -1 цифрлік мәні оның кері көбейтуін білдіреді. Бірінен соң бірі келетін 1-ді болдырмау үшін бүтін сандарды кодтаудың басқа әдістеріне Бут кодтау және Фибоначчи кодтау жатады.