二进制转十进制c代码
时间: 2024-10-28 08:15:17 浏览: 17
在C语言中,将二进制数转换成十进制可以使用位运算符来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
// Function to convert binary to decimal
int binaryToDecimal(int n) {
int decimal = 0;
int base = 1;
while (n != 0) {
int last_digit = n % 10; // 获取二进制数的最后一位
decimal += last_digit * base; // 累加到十进制结果
base *= 2; // 移位,准备下一次计算
n /= 10; // 去掉最低位
}
return decimal;
}
int main() {
int binary_num;
printf("Enter a binary number: ");
scanf("%d", &binary_num);
int decimal_num = binaryToDecimal(binary_num);
printf("The decimal equivalent is: %d\n", decimal_num);
return 0;
}
```
在这个程序中,`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语言中,将二进制数转换成十进制可以使用循环和数学运算来进行。以下是一个简单的函数示例,它接收一个字符串形式的二进制数并返回其对应的十进制值:
```c
#include <stdio.h>
#include <string.h>
int binaryToDecimal(char* binaryStr) {
int decimal = 0;
int base = 1;
int len = strlen(binaryStr);
for (int i = len - 1; i >= 0; i--) {
if (binaryStr[i] == '1') {
decimal += base;
}
base *= 2; // 增加基数,因为下一位的权值是上一位的两倍
}
return decimal;
}
// 示例用法
int main() {
char binaryNum[] = "1010";
printf("Binary %s is equal to decimal %d\n", binaryNum, binaryToDecimal(binaryNum));
return 0;
}
```
这个程序从右向左遍历输入的二进制字符串,每次遇到'1'就将其对应的权重(当前`base`乘以2)加到`decimal`上。当遍历完整个二进制字符串后,就会得到十进制结果。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)