十进制转负二进制python
时间: 2023-10-02 22:10:15 浏览: 89
负数与二进制换转方法
5星 · 资源好评率100%
以下是将十进制转换为负二进制的 Python 代码:
```python
def decimal_to_negative_binary(n):
if n == 0:
return '0'
binary = ''
while n != 0:
remainder = n % -2
n //= -2
if remainder < 0:
remainder += 2
n += 1
binary = str(remainder) + binary
return binary
```
使用方法:
```python
n = -15
binary = decimal_to_negative_binary(n)
print(binary) # 输出: '11001'
```
解释一下代码:
1. 如果输入的数字 n 是 0,直接返回字符串 '0';
2. 对于非零数字,进行以下操作:
1. 求当前数字 n 除以 -2 的余数,记为 remainder;
2. 将当前数字 n 除以 -2 的结果,向下取整并赋值给 n;
3. 如果 remainder 小于 0,说明上一步的除法运算产生了余数,需要将 remainder 加上 2,同时将 n 加上 1;
4. 将 remainder 转换为字符串并拼接到 binary 变量的左边;
5. 重复以上步骤,直到 n 为 0。
最终得到的 binary 字符串即为负二进制表示的结果。
阅读全文