二进制转换十进制C语言 利用余数
时间: 2023-11-23 07:50:43 浏览: 84
利用余数将二进制转换为十进制的C语言代码如下:
```c
#include <stdio.h>
int binaryToDecimal(int n) {
int decimal = 0, base = 1;
while (n > 0) {
int lastDigit = n % 10;
decimal += lastDigit * base;
n /= 10;
base *= 2;
}
return decimal;
}
int main() {
int binary;
printf("请输入一个二进制数:"); scanf("%d", &binary);
printf("对应的十进制数为:%d\n", binaryToDecimal(binary));
return 0;
}
```
相关问题
十进制转换为二进制c语言
以下是将十进制数转换为二进制数的c语言代码:
```c
#include <stdio.h>
int main() {
int decimal, remainder, binary = 0, place = 1;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
while (decimal > 0) {
remainder = decimal % 2;
binary += remainder * place;
place *= 10;
decimal /= 2;
}
printf("Binary equivalent: %d", binary);
return 0;
}
```
这个程序使用了一个while循环来将十进制数转换为二进制数。在每次循环中,程序使用模数运算符来计算余数(0或1),并将余数乘以适当的位数加入到二进制变量中。然后,程序将place变量乘以10,以便在下一个循环中使用更高的位数。最后,程序将十进制数除以2,以便在下一个循环中处理更低的位数。
二进制转换成八进制c语言代码
在C语言中,将二进制数转换为八进制数可以先将其视为字符串处理,通过循环逐位取余数的方式转换为十进制,然后再转换为八进制。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 函数:将二进制字符串转换为八进制字符串
char* binary_to_octal(char* binary_str) {
int len = strlen(binary_str);
int octal_num = 0;
char octal_str[9]; // 预留一位给前导零
for (int i = len - 1; i >= 0; i--) {
if (binary_str[i] == '1') {
octal_num += pow(2, len - 1 - i);
}
}
// 将十进制转为八进制
char* ptr = octal_str + 1;
while (octal_num > 0) {
*ptr++ = octal_num % 8 + '0'; // 转换为字符并加前导零
octal_num /= 8;
}
*ptr = '\0';
// 反转字符串以便得到正确的八进制顺序
倒序(octal_str);
return octal_str;
}
// 辅助函数:反转字符串
void倒序(char* str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
char binary_str[] = "10101010"; // 示例二进制数
char* octal_str = binary_to_octal(binary_str);
printf("Binary %s is equal to Octal %s\n", binary_str, octal_str);
free(octal_str); // 释放内存
return 0;
}
```
阅读全文