# Talk:Non-adjacent form

Jump to: navigation, search

The paragraph on alternating signs is not correct. Just consider the binary representation of decimal 9, being 1001, which is its unique NAF form.

It is however correct that the Booth Algorithm determines a signed digit representation where the signs of the non-zero digits alternate.

BUT the Booth algorithm does not generate a NAF representation! Take as an example a binary string with an isolated 1, say ...${\displaystyle 00100}$..., which by the Booth Algorithm converts into ...${\displaystyle 01{\bar {1}}}$...

The original algorithm for converting a binary number into its equivalent and unique NAF form was given by Reitwiesner in 1960, but normally it is described by the following right-to-left algorithm:

Input: ${\displaystyle b_{n-1}\cdots b_{1}b_{0}}$ in 2's complement
Output: ${\displaystyle e_{n}e_{n-1}\cdots e_{1}e_{0}}$
${\displaystyle c_{0}:=0;\ b_{n+1}:=b_{n}:=b_{n-1};}$
for ${\displaystyle i:=0}$ to ${\displaystyle n}$ do

 ${\displaystyle c_{i+1}:=\lfloor (c_{i}+b_{i}+b_{i+1})/2\rfloor ;}$ ${\displaystyle e_{i}:=c_{i}+b_{i}-2c_{i+1};}$


end

## Encoding the NAF of an m-bit number using m+1 bits

The article currently states that "[b]cause every non-zero value has to be adjacent to two 0's, the NAF representation can be implemented such that it only takes a maximum of m + 1 bits for a value that would normally be represented in binary with m bits." Can someone provide more details on this "implementation"? 188.169.229.30 (talk) 19:39, 27 April 2013 (UTC)

## NAF example in Obtaining NAF

While correcly labeling binary and NAF digits for one NAF digit more, it is not striking because zm − 2 is dropped. Also, how to show the zeroes?

   Input    E =    (em−1 em − 2 … e3 e2 e1 e0)2
Output   Z = (zm zm−1 zm − 2 …  0 z2  0 z0)NAF


is intuitive, but flawed: z2 may be 0, allowing z3 to be non-zero. 84.63.77.35 (talk) 02:27, 31 May 2015 (UTC)