用c语言实现二进制转换为十进制
时间: 2024-06-12 22:08:25 浏览: 133
可以使用以下的 C 代码实现二进制转换为十进制:
```c
#include <stdio.h>
int binaryToDecimal(long long n) {
int decimalNumber = 0, i = 0, remainder;
while (n != 0) {
remainder = n % 10;
n /= 10;
decimalNumber += remainder * pow(2, i);
++i;
}
return decimalNumber;
}
int main() {
long long binaryNumber;
printf("请输入一个二进制数: ");
scanf("%lld", &binaryNumber);
printf("转换为十进制: %d", binaryToDecimal(binaryNumber));
return 0;
}
```
相关问题
用C语言实现二进制进制转换为十进制
在C语言中,可以使用位操作符和循环结构来将二进制数转换成十进制。这里是一个简单的函数示例,它接受一个字符串形式的二进制数,并返回相应的十进制值:
```c
#include <stdio.h>
#include <string.h>
int binaryToDecimal(char* binary) {
int decimal = 0;
int base = 1; // 从右往左,每一位对应的权值递增
int len = strlen(binary); // 获取二进制字符串长度
for (int i = len - 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;
}
```
这个程序首先初始化一个变量`decimal`作为结果,然后从二进制字符串的右端开始遍历,每次遇到'1'就加上相应的权重`base`。`base`随着遍历位置向左移动而翻倍。最后返回得到的`decimal`值。
用c语言将二进制转换为十进制
在C语言中,将二进制数转换为十进制通常通过遍历二进制字符串,并累加每个位的权重来进行。这里是一个简单的函数示例,它接受一个指向二进制字符串的指针作为输入:
```c
#include <stdio.h>
#include <string.h>
int binaryToDecimal(char *binary) {
int decimal = 0;
int base = 1; // 这里表示每一位的权值,从最低位开始是2^0, 2^1, 2^2...
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("Binary %s is equivalent to decimal %d.\n", binaryNum, decimalNum);
return 0;
}
```
在这个例子中,`binaryToDecimal`函数从二进制字符串的末尾开始,如果遇到字符'1'就将对应的数字(base)加到结果decimal上,然后base乘以2以处理下一个位。这个过程一直持续到遍历完整个字符串。
阅读全文