对于十进制整数N,试求其-2进制表示。 例如,因为 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。 用c语言实现
时间: 2023-12-18 20:58:43 浏览: 30
可以使用以下代码实现:
```c
#include <stdio.h>
void to_neg_base(int n) {
if (n == 0) {
printf("0");
return;
}
char digits[32];
int i = 0;
while (n != 0) {
int remainder = n % -2;
n /= -2;
if (remainder < 0) {
remainder += 2;
n += 1;
}
digits[i++] = remainder + '0';
}
for (int j = i - 1; j >= 0; j--) {
printf("%c", digits[j]);
}
}
int main() {
int n = -13;
printf("%d的-2进制表示为:", n);
to_neg_base(n);
printf("\n");
return 0;
}
```
输出结果为:
```
-13的-2进制表示为:110111
```
相关问题
对于十进制整数N,试求其-2进制表示。 例如,因为 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。
对于一个十进制整数N,可以通过以下步骤求出其-2进制表示:
1. 将N除以-2,得到商Q和余数R。
2. 如果余数R为负数,则将余数R加上2,同时将商Q加上1。
3. 将余数R记录下来。
4. 如果商Q不等于0,则重复步骤1~3。
5. 将所有余数按照从后往前的顺序排列,得到的数字序列就是N的-2进制表示。
例如,对于十进制整数-13,可以进行如下计算:
-13 ÷ -2 = 6 ... -1
6 ÷ -2 = -3 ... 0
-3 ÷ -2 = 2 ... -1
2 ÷ -2 = -1 ... 0
-1 ÷ -2 = 1 ... -1
1 ÷ -2 = 0 ... 1
因此,(-13)_10 = (110111)_-2。
编程输入十进制整数N(N:-32767~32767),请输出它对应的二进制、八进制、十六进制数。
### 回答1:
可以使用Python语言实现,代码如下:
```python
N = int(input("请输入一个十进制整数:"))
# 转换为二进制
bin_num = bin(N)
print("二进制数为:" + bin_num[2:])
# 转换为八进制
oct_num = oct(N)
print("八进制数为:" + oct_num[2:])
# 转换为十六进制
hex_num = hex(N)
print("十六进制数为:" + hex_num[2:])
```
运行结果:
```
请输入一个十进制整数:123
二进制数为:1111011
八进制数为:173
十六进制数为:7b
```
### 回答2:
编程可以利用程序语言中提供的转换函数或方法实现该功能。以下是使用Python语言的例子:
```python
# 输入十进制整数N
N = int(input("请输入一个十进制整数N:"))
# 将N转换为二进制数
binary = bin(N)
# 将N转换为八进制数
octal = oct(N)
# 将N转换为十六进制数
hexadecimal = hex(N)
# 输出转换结果
print("对应的二进制数为:", binary)
print("对应的八进制数为:", octal)
print("对应的十六进制数为:", hexadecimal)
```
运行程序后,会要求输入一个十进制整数N,然后输出该数的对应的二进制、八进制和十六进制数。
例如,输入N为10,输出的结果为:
对应的二进制数为: 0b1010
对应的八进制数为: 0o12
对应的十六进制数为: 0xa
请注意,程序中使用的`bin()`函数将数字转换为二进制数,并添加前缀"0b"表示该数为二进制数;`oct()`函数将数字转换为八进制数,并添加前缀"0o"表示该数为八进制数;`hex()`函数将数字转换为十六进制数,并添加前缀"0x"表示该数为十六进制数。
### 回答3:
编程输入一个十进制整数N,我们可以使用以下方法输出其对应的二进制、八进制和十六进制数。
对于二进制,我们可以使用除以2取余法来逐步得到N的二进制表示。
具体的步骤如下:
1. 初始化一个空字符串bin_str。
2. 当N大于0时,执行以下操作:
(a) 将N取余2的结果添加到bin_str的开头。
(b) 将N整除以2。
3. 输出bin_str,即为N对应的二进制表示。
对于八进制和十六进制,我们可以使用Python内置函数来实现。
具体的步骤如下:
1. 使用内置函数oct(N)来获取N的八进制表示。
2. 使用内置函数hex(N)来获取N的十六进制表示。
3. 输出N的八进制表示和十六进制表示。
以下是一个示例代码:
```python
N = int(input("请输入一个十进制整数N:"))
# 二进制表示
bin_str = ""
temp = abs(N)
while temp > 0:
bin_str = str(temp % 2) + bin_str
temp //= 2
if N < 0:
bin_str = "-" + bin_str
print("二进制表示:", bin_str)
# 八进制表示
oct_str = oct(N)
print("八进制表示:", oct_str)
# 十六进制表示
hex_str = hex(N)
print("十六进制表示:", hex_str)
```
这样,程序可以根据输入的十进制整数N输出其对应的二进制、八进制和十六进制数。