十进制转化各种进制 - l00jj/algorithm GitHub Wiki
1017. 负二进制转换
class Solution:
def baseNeg2(self, n: int) -> str:
if not n: return "0"
res = []
while n:
remain = n & 1
res.append(remain)
n -= remain
n //= -2
return "".join(map(str, res[::-1]))
// 就是类似于求二进制的方法,除以-2,取余数,控制余数为1或0就行
class Solution {
public String baseNeg2(int n) {
if (n == 0) return "0";
StringBuilder builder = new StringBuilder();
while (n != 0) {
if (Math.abs(n) % 2 == 1) builder.append("1");
else builder.append("0");
if (n > 0) n = n / -2;
else n = (n - 1) / -2;
}
return builder.reverse().toString();
}
}