c语言编写程序,将一个二进制整数转换成十进制
时间: 2024-11-22 08:46:09 浏览: 31
decimal:将二进制输入转换为一个十进制整数
在C语言中,将一个二进制整数转换为十进制可以使用位运算和数学运算结合的方式来实现。这里是一个简单的示例程序,它接受用户输入的二进制字符串,并将其转换为十进制整数:
```c
#include <stdio.h>
#include <string.h>
// 将二进制字符串转换为十进制
int binaryToDecimal(char *binary) {
int decimal = 0;
int base = 1;
int len = strlen(binary);
for (int i = len - 1; i >= 0; i--) {
if (binary[i] == '1') {
decimal += base;
}
base *= 2;
}
return decimal;
}
int main() {
char binary[50];
printf("请输入一个二进制数字(前缀'0b'表示): ");
fgets(binary, sizeof(binary), stdin); // 获取用户输入
binary[strcspn(binary, "\n")] = '\0'; // 清除换行符
if (binary[0] == '0' && binary[1] == 'b') { // 检查是否以'0b'开头
binary += 2; // 移动指针到实际二进制数值部分
}
int decimalResult = binaryToDecimal(binary);
printf("对应的十进制值是: %d\n", decimalResult);
return 0;
}
```
在这个程序中,我们首先定义了一个`binaryToDecimal`函数,通过从右向左遍历输入的二进制串,每次检查当前字符是否为'1',如果是,则加到十进制结果上,并更新基数(即2的幂)。最后,`main`函数获取用户输入的二进制数,并调用这个函数进行转换。
请注意,此程序假设输入的是有效的二进制字符串。如果输入包含非'0'和'1'的字符,或者不是正确的二进制格式,你需要添加错误检查和处理代码。
阅读全文