十进制如何转化为负二进制
时间: 2023-08-21 19:08:02 浏览: 187
将十进制数逐步除以 -2(负二进制的基数为-2),将余数和商依次记录下来,直到商为0为止。最后将记录的余数倒序排列即可。
例如,将十进制数 13 转化为负二进制:
13 ÷ -2 = -6 ... 1
-6 ÷ -2 = 3 ... 0
3 ÷ -2 = -2 ... 1
-2 ÷ -2 = 1 ... 0
1 ÷ -2 = 0 ... 1
所以,13的负二进制表示为 11011。
相关问题
十进制转负二进制python
以下是将十进制转换为负二进制的 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 字符串即为负二进制表示的结果。
python十进制转负二进制代码
以下是将十进制数转换为负二进制数的 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
```
函数 `decimal_to_negative_binary(n)` 接受一个十进制数 `n`,并返回其对应的负二进制数。该函数的实现方式是通过循环不断将 `n` 除以 `-2` 并取余,直到 `n` 变为 `0`。每次取余时,需要特别处理余数为负数的情况,将其加上 `2` 并将 `n` 加上 `1`,以便保证余数始终为非负数。最后将所有余数拼接起来即为结果。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)