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

标签 algorithm radix base-conversion

我想写一个程序将十进制转换为负二进制。

我不知道如何将十进制转换为负二进制。

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

示例: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/

相关文章:

java - 是什么导致我的结果打印结果与应有的相反?

java - 在 JAVA 中从基 X 转换为基 Y 与 PHP 中的相同函数返回不同的字符

c - 在可变大小的井字棋网格中检查获胜的最有效方法?

c - 如何计算模除法

c++ - BigInteger:在 C++ 中使用 ofstream 写入文件时将基数更改为 2 的方法?

delphi - 从10到32的转换

fibonacci - Zeckendorf 和 Golden Ratio Base 之间的转换

c - 二进制转十进制的程序

algorithm - 向用户建议标签列表的算法

python 对象从错误的文本文件中获取先前的对象属性,并从正确的文本文件中获取它们自己的属性