Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

What is a simple algorithm you can feasibly do by hand to negate an integer in a negative base, such as negadecimal?

In positive bases, you can simply append a negative sign if it is not there, and remove it if it is:

Negate 123456
-> -123456
Negate -123456
-> 123456

In a negative base, however, it is not so easy, since both negative and positive numbers can be represented without any sort of explicit sign.

This should be the result in negadecimal:

Negate 123456
-> 98764
Negate 98764
-> 123456

I can't figure out a straightforward method (i.e. one that can be done with pencil and paper fairly mindlessly) to negate a negadecimal number. How could I do this?

share|improve this question
    
In a number and its negation, what happens if you add the corresponding digits? (answer 10, at least in your two examples: does that work in general?) –  GEdgar Aug 30 '11 at 23:57
add comment

1 Answer

up vote 2 down vote accepted

Working from the right, the two extreme digits must add up to 0 or 10 (and can only add to 0 if they are both 0). If they add to 10 then carry one from the next sum. The next two digits to the left must add up to 0 or 10 if not carrying one, or if carrying one then add up to 1 or 11; if they add up to 10 or 11 then carry one from the next sum. And so on.

So starting with say 120034:

  • The negative must have 6 on the right as $4+6=10$, so carry one.
  • The next digit of the negative must be 8 as $3+8=11$, so carry one.
  • The next digit of the negative must be 1 as $0+1=1$, so do not carry one.
  • The next digit of the negative must be 0 as $0+0=0$, so do not carry one.
  • The next digit of the negative must be 8 as $2+8=10$, so carry one.
  • The next digit of the negative must be 0 as $1+0=1$, so do not carry one.
  • The next digit of the negative must be 0 as $0+0=0$, and so on.

But we can ignore left-hand leading 0s so the negative of 120034 is 80186.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.