负数二进制转成十进制C语言代码
时间: 2023-10-30 16:12:10 浏览: 96
C语言实现二进制转换十进制
4星 · 用户满意度95%
以下是将负数二进制转换为十进制的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int binary[] = {1, 0, 1, 1, 1, 1, 1, 1}; // 负数二进制,最高位为符号位
int length = sizeof(binary) / sizeof(binary[0]); // 数组长度
int decimal = 0;
for (int i = length - 1; i > 0; i--) { // 从高位到低位遍历二进制数
if (binary[i] == 1) { // 如果该位为1,则加上2的幂次方
decimal += pow(2, length - 1 - i);
}
}
if (binary[0] == 1) { // 如果符号位为1,则表示负数
decimal = -decimal;
}
printf("十进制数为:%d\n", decimal);
return 0;
}
```
本代码假设负数二进制的最高位为符号位,代码中的二进制数为-127。通过遍历二进制数的每一位,将每一位的权值相加,最后根据符号位确定正负号。在本例中,负数二进制的最高位为1,表示负数,因此将计算结果取负数。输出结果为-127的十进制表示。
阅读全文