用c语言将一个负数从十进制转化为二进制代码
时间: 2023-12-07 16:02:58 浏览: 52
以下是将一个负数从十进制转化为二进制代码的C语言代码:
```c
#include <stdio.h>
void decimalToBinary(int n) {
int binary[32];
int i = 0;
if (n == 0) {
printf("0");
return;
}
if (n == -2147483648) {
printf("10000000000000000000000000000000");
return;
}
if (n < 0) {
n = -n;
printf("1");
} else {
printf("0");
}
while (n > 0) {
binary[i] = n % 2;
n = n / 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int n = -10;
printf("The binary representation of %d is: ", n);
decimalToBinary(n);
return 0;
}
```
这个程序将输入的负数转化为其绝对值的二进制代码,并在最前面加上一个"1"来表示它是一个负数。如果输入的负数是最小的负数-2147483648,则需要特殊处理,因为它的绝对值无法表示为正数。