在此示例中,您将学习通过创建用户定义的函数将二进制数与十进制相互转换。
要理解此示例,您应该了解以下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(二进制)