如何将十进制基数(10)转换为负基数(-2)?

Jas*_*son 10 algorithm base-conversion base

我想写一个程序,从十进制转换为否定.

我无法弄清楚如何从十进制转换为否定.

我不知道如何找到规则及其工作原理.

例: 7(base10)-->11011(base-2)

我才知道7 = (-2)^0*1 + (-2)^1*1 + (-2)^2*0 + (-2)^3*1 + (-2)^4*1.

ken*_*ytm 11

该算法在http://en.wikipedia.org/wiki/Negative_base#Calculation中描述.基本上,您只需选择余数作为正基础情况,并确保余数为非负且最小.

 7 = -3*-2 + 1  (least significant digit)
-3 =  2*-2 + 1
 2 = -1*-2 + 0
-1 =  1*-2 + 1
 1 =  0*-2 + 1  (most significant digit)
Run Code Online (Sandbox Code Playgroud)