在此示例中,您将学习通过创建用户定义的函数将二进制数与十进制相互转换。
要理解此示例,您应该了解以下C语言编程主题:
#include <math.h>
#include <stdio.h>
int convert(long long n);
int main() {
long long n;
printf("输入二进制数: ");
scanf("%lld", &n);
printf("%lld(二进制)= %d(十进制)", n, convert(n));
return 0;
}
int convert(long long n) {
int dec = 0, i = 0, rem;
while (n != 0) {
rem = n % 10;
n /= 10;
dec += rem * pow(2, i);
++i;
}
return dec;
}
输出结果
输入二进制数: 110110111
110110111(二进制)= 439(十进制)
#include <math.h>
#include <stdio.h>
long long convert(int n);
int main() {
int n;
printf("输入十进制数字: ");
scanf("%d", &n);
printf("%d(十进制)= %lld(二进制)", n, convert(n));
return 0;
}
long long convert(int n) {
long long bin = 0;
int rem, i = 1, step = 1;
while (n != 0) {
rem = n % 2;
printf("步骤 %d: %d/2, 余 = %d, 商 = %d\n", step++, n, rem, n / 2);
n /= 2;
bin += rem * i;
i *= 10;
}
return bin;
}
输出结果
输入十进制数字: 29
步骤 1: 29/2, 余 = 1, 商 = 14
步骤 2: 14/2, 余 = 0, 商 = 7
步骤 3: 7/2, 余 = 1, 商 = 3
步骤 4: 3/2, 余 = 1, 商 = 1
步骤 5: 1/2, 余 = 1, 商 = 0
29(十进制)= 11101(二进制)