我想写一个程序将十进制转换为负二进制。
我不知道如何将十进制转换为负二进制。
我不知道如何找到规则及其工作原理。
示例:7(base10)-->11011(base-2)
我只知道是 7 = (-2)^0*1 + (-2)^1*1 + (-2)^2*0 + (-2)^3*1 + ( -2)^4*1
.
最佳答案
该算法在 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)
关于algorithm - 如何将十进制底数 (10) 转换为负二进制底数 (-2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330946/