Samiksha Jaiswal (Editor)

Canonical signed digit

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In computing canonical-signed-digit (CSD) is a special manner for encoding a value in a signed-digit representation, which itself is non-unique representation and allows one number to be represented in many ways. Probability of digit being zero is close to 66% (vs. 50% in two's complement encoding) and leads to efficient implementations of add/subtract networks (e.g. multiplication by a constant) in hardwired digital signal processing.

The representation uses a sequence of one or more of the symbols, -1, 0, +1 (alternatively -, 0 or +) with each position possibly representing the addition or subtraction of a power of 2. For instance 23 is represented as +0-00-, which expands to + 2 5 2 3 2 0 or 32 8 1 = 23

Implementation

CSD is obtained by transforming every sequence of zero followed by ones (011...1) into + followed by zeros and the least significant bit by - (+0....0-).

As an example: the number 7 has a two's complement representation 0111

( 7 = 0 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 4 + 2 + 1 )

into +00-

( 7 = + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 1 × 2 0 = 8 1 )

References

Canonical signed digit Wikipedia