二进制转换为十进制程序c语言
时间: 2023-07-27 07:05:52 浏览: 93
以下是将二进制数转换为十进制数的C语言程序:
```
#include <stdio.h>
#include <math.h>
int main()
{
int binary, decimal = 0, i = 0, remainder;
printf("Enter the binary number: ");
scanf("%d", &binary);
while (binary != 0)
{
remainder = binary % 10;
binary /= 10;
decimal += remainder * pow(2, i);
++i;
}
printf("The decimal equivalent is %d", decimal);
return 0;
}
```
程序首先从用户那里获取一个二进制数,然后在一个 while 循环中,它将该数字的每个位数都分离出来,并将其转换为十进制数。最后,程序将计算出的十进制数输出到屏幕上。
相关问题
二进制转换为十进制c语言
在C语言中,将二进制数转换为十进制数通常通过循环遍历每一位,并利用每位的权重计算总和。这里有一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 函数用于将二进制字符串转换为十进制
int binaryToDecimal(char *binary) {
int decimal = 0;
int base = 1; // 从最低位开始,权重每次翻倍
// 遍历输入的二进制字符串
for (int i = strlen(binary) - 1; i >= 0; i--) {
if (binary[i] == '1') { // 如果当前位是1
decimal += base; // 加上该位的权重
}
base *= 2; // 移到下一位,权重翻倍
}
return decimal;
}
int main() {
char binaryNum[] = "1010"; // 举例二进制数
int decimalNum = binaryToDecimal(binaryNum);
printf("二进制 %s 转换成十进制是:%d\n", binaryNum, decimalNum);
return 0;
}
```
在这个例子中,`binaryToDecimal`函数接收一个表示二进制数的字符数组,然后通过从右向左遍历并累加权重的方式计算出对应的十进制值。
二进制转换为十进制 C语言
二进制转换为十进制的方法是将每一位上的数值乘以2的对应次方,再将结果相加即可得到十进制数。例如,二进制数1101转换为十进制数的计算方法如下:
1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 8 + 4 + 0 + 1 = 13
在C语言中,可以使用atoi()函数将二进制字符串转换为整数类型,如下所示:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
char binary_str[] = "1101";
int decimal_num = strtol(binary_str, NULL, 2);
printf("Binary %s in decimal is %d\n", binary_str, decimal_num);
return 0;
}
```
上面的代码中,strtol()函数将二进制字符串binary_str转换为整数类型decimal_num,base参数指定了原字符串的进制,此处为2。注意,strtol()函数返回的是long int类型,需要进行强制类型转换才能存储到int类型的变量中。
阅读全文