原文: https://www.programiz.com/c-programming/examples/binary-decimal-convert
在此示例中,您将学习通过创建用户定义的函数将二进制数字手动转换为十进制,反之亦然。
要理解此示例,您应该了解以下 C 编程主题:
将二进制转换为十进制的程序
#include <math.h>#include <stdio.h>int convert(long long n);int main() {long long n;printf("Enter a binary number: ");scanf("%lld", &n);printf("%lld in binary = %d in decimal", 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;}
输出
Enter a binary number: 110110111110110111 in binary = 439
将十进制转换为二进制的程序
#include <math.h>#include <stdio.h>long long convert(int n);int main() {int n;printf("Enter a decimal number: ");scanf("%d", &n);printf("%d in decimal = %lld in binary", 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("Step %d: %d/2, Remainder = %d, Quotient = %d\n", step++, n, rem, n / 2);n /= 2;bin += rem * i;i *= 10;}return bin;}
输出
Enter a decimal number: 19Step 1: 19/2, Remainder = 1, Quotient = 9Step 2: 9/2, Remainder = 1, Quotient = 4Step 3: 4/2, Remainder = 0, Quotient = 2Step 4: 2/2, Remainder = 0, Quotient = 1Step 5: 1/2, Remainder = 1, Quotient = 019 in decimal = 10011 in binary
