二进制转换为十进制c
时间: 2023-07-27 22:05:54 浏览: 42
以下是将二进制数转换为十进制数的C代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int binary, decimal = 0, i = 0, rem;
printf("Enter a binary number: ");
scanf("%d", &binary);
while (binary != 0) {
rem = binary % 10;
decimal += rem * pow(2, i);
binary /= 10;
i++;
}
printf("Decimal: %d", decimal);
return 0;
}
```
该程序首先从用户获取一个二进制数,然后使用while循环将其转换为十进制数。在每个迭代中,它使用模运算符获取二进制数的最后一位,并使用pow函数将其转换为十进制数。最后,它将二进制数除以10并将指数递增,以处理下一个二进制数位。最终结果存储在变量decimal中并输出给用户。
相关问题
C语言二进制转换为十进制
在C语言中,可以使用标准库函数`strtol()`将二进制字符串转换为十进制整数。该函数的原型如下:
```c
long int strtol(const char *str, char **endptr, int base);
```
其中,`str`是待转换的字符串,`endptr`是一个指向字符指针的指针,用于存储第一个未被转换的字符的指针(即指向结束符'\0'之后的位置),`base`表示转换的进制,通常为2、8、10或16。
以下是一个将二进制字符串转换为十进制整数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char bin_str[] = "10101010"; // 二进制字符串
char *endptr; // 未被转换的字符指针
long int dec_num;
dec_num = strtol(bin_str, &endptr, 2); // 将二进制字符串转换为十进制整数
printf("Binary: %s\n", bin_str);
printf("Decimal: %ld\n", dec_num);
return 0;
}
```
输出结果为:
```
Binary: 10101010
Decimal: 170
```
可以看到,二进制字符串"10101010"被转换为了十进制整数170。
二进制转换为十进制程序c语言
以下是将二进制数转换为十进制数的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 循环中,它将该数字的每个位数都分离出来,并将其转换为十进制数。最后,程序将计算出的十进制数输出到屏幕上。