生成一段将二进制转为十进制的C语言代码
时间: 2023-09-05 19:10:59 浏览: 96
以下是将二进制转为十进制的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int binary, decimal = 0, i = 0, remainder;
printf("Enter a binary number: ");
scanf("%d", &binary);
while (binary != 0) {
remainder = binary % 10;
binary /= 10;
decimal += remainder * pow(2, i);
++i;
}
printf("Decimal number is: %d", decimal);
return 0;
}
```
代码中,首先通过 scanf() 函数获取用户输入的二进制数,然后通过 while 循环将二进制数转换为十进制数,最后通过 printf() 函数输出转换后的十进制数。在循环中,通过取余运算符获取二进制数的每一位,然后将二进制数除以 10,继续获取下一位。通过 pow() 函数计算每一位的权重,最终得到十进制数。
相关问题
二进制转十进制代码C语言
在C语言中,将二进制数转换成十进制可以使用`strtol`函数或者手动计算每一位的权重。以下是两种方法的例子:
1. 使用`strtol`函数:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char binary[50];
printf("请输入一个二进制数: ");
fgets(binary, sizeof(binary), stdin);
// 移除字符串末尾的换行符
binary[strlen(binary) - 1] = '\0';
long decimal = strtol(binary, NULL, 2); // 第三个参数指定基数为2(二进制)
printf("二进制 %s 转换成十进制是 %ld\n", binary, decimal);
return 0;
}
```
2. 手动计算每位权重:
```c
#include <stdio.h>
int main() {
char binary[50];
printf("请输入一个二进制数: ");
scanf("%s", binary);
int decimal = 0;
for (int i = 0; binary[i]; ++i) { // 遍历二进制字符串
if (binary[i] == '1') decimal += pow(2, (strlen(binary) - 1 - i)); // 根据位权加到总和上
}
printf("二进制 %s 转换成十进制是 %d\n", binary, decimal);
return 0;
}
```
写一段二进制转十进制的c语言
以下是一个简单的二进制转十进制的 C 语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
long long binary;
int decimal = 0, i = 0, remainder;
printf("Enter a binary number: ");
scanf("%lld", &binary);
while (binary != 0) {
remainder = binary % 10;
binary /= 10;
decimal += remainder * pow(2, i);
++i;
}
printf("Decimal number is: %d", decimal);
return 0;
}
```
在这个程序中,我们首先获取一个二进制数字作为输入,然后使用 while 循环从右至左遍历每个二进制位。使用取余数和除法操作将每个二进制位转换为十进制,并将其累加到最终的十进制结果中。最后,我们输出十进制结果。
请注意,此代码仅适用于输入的二进制数为正整数。
阅读全文