二进制转十进制代码(C语言)
时间: 2023-08-07 14:08:33 浏览: 233
以下是一个用C语言编写的二进制转十进制的代码示例:
```c
#include <stdio.h>
#include <math.h>
int binaryToDecimal(long long binaryNumber) {
int decimalNumber = 0, i = 0, remainder;
while (binaryNumber != 0) {
remainder = binaryNumber % 10;
binaryNumber /= 10;
decimalNumber += remainder * pow(2, i);
++i;
}
return decimalNumber;
}
int main() {
long long binaryNumber;
printf("请输入一个二进制数: ");
scanf("%lld", &binaryNumber);
printf("转换为十进制数为: %d", binaryToDecimal(binaryNumber));
return 0;
}
```
此代码中,`binaryToDecimal`函数用于将二进制数转换为十进制数。在`main`函数中,用户输入一个二进制数,然后调用`binaryToDecimal`函数进行转换,并输出转换后的十进制数。
相关问题
二进制转十进制代码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语言代码示例,用于将十制数转换为二进制数并计算二进制1的个数:
```c
#include <stdio.h>
int main() {
int number, count = 0;
printf("请输入要转换的十进制数:");
scanf("%d", &number);
printf("该十进制数的二进制数是:");
while (number > 0) {
int remainder = number % 2;
printf("%d", remainder);
if (remainder == 1) {
count++;
}
number /= 2;
}
printf("\n二进制1的个数是:%d", count);
return 0;
}
```
阅读全文