Hacker News new | ask | show | jobs
by paulddraper 3450 days ago
If you're looking for true beauty, look no further than negabinary. (http://mathworld.wolfram.com/Negabinary.html)

E.g.

     3 = (-2)^2 + (-2)^1 + (-2)^0 = 0110_-2
    -3 = (-2)^3 + (-2)^2 + (-2)^0 = 1101_-2
There is no signed bit, you don't have to worry about sign; everything just works like "normal" numbers because that in fact is what it is.

A pity it was never used except a few times in early computing. I'm never sure why 2's-complement won.

1 comments

...why 2's-complement won.

Maybee conversion to/from character code is easier. Notice the conversion code in the linked article.

> conversion to/from character code is easier

(1) How often do you convert from machine integers to binary character representations?

(2) If you're referring to

        for(j = 0; j < bitlen; j++) {
            bin[j] = (i & 1) ? '1': '0';
            i >>= 1;    
        }
that's the exact same for a negabinary machine.
I meant to/from numbers in text form. Usually decimal.