原文: https://www.programiz.com/cpp-programming/examples/binary-decimal-convert
在此示例中,您将学习通过创建用户定义的函数将二进制数转换为十进制,以及将十进制数手动转换为二进制。
要理解此示例,您应该了解以下 C++ 编程主题:
访问此页面以了解如何将二进制数转换为十进制。
示例 1:将二进制数转换为十进制
#include <iostream>#include <cmath>using namespace std;int convertBinaryToDecimal(long long);int main(){long long n;cout << "Enter a binary number: ";cin >> n;cout << n << " in binary = " << convertBinaryToDecimal(n) << "in decimal";return 0;}int convertBinaryToDecimal(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;}
输出
Enter a binary number: 11111111 in binary = 15
访问此页面以了解如何将十进制数转换为二进制。
示例 2:将十进制数转换为二进制
#include <iostream>#include <cmath>using namespace std;long long convertDecimalToBinary(int);int main(){int n, binaryNumber;cout << "Enter a decimal number: ";cin >> n;binaryNumber = convertDecimalToBinary(n);cout << n << " in decimal = " << binaryNumber << " in binary" << endl ;return 0;}long long convertDecimalToBinary(int n){long long binaryNumber = 0;int remainder, i = 1, step = 1;while (n!=0){remainder = n%2;cout << "Step " << step++ << ": " << n << "/2, Remainder = " << remainder << ", Quotient = " << n/2 << endl;n /= 2;binaryNumber += remainder*i;i *= 10;}return binaryNumber;}
输出
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
