在计算机系统中,二进制数字以二进制数字系统表示,而十进制数字以十进制数字系统表示。二进制数以2为底,十进制数以10为底。
十进制数及其对应的二进制数的示例如下-
小数 | 二进制数 |
---|---|
10 | 01010 |
7 | 00111 |
25 | 11001 |
16 | 10000 |
将二进制数字转换为十进制并将十进制数字转换为二进制的程序如下。
#include <iostream> using namespace std; void DecimalToBinary(int n) { int binaryNumber[100], num=n; int i = 0; while (n > 0) { binaryNumber[i] = n % 2; n = n / 2; i++; } cout<<"Binary form of "<<num<<" is "; for (int j = i - 1; j >= 0; j--) cout << binaryNumber[j]; cout<<endl; } int BinaryToDecimal(int n) { int decimalNumber = 0; int base = 1; int temp = n; while (temp) { int lastDigit = temp % 10; temp = temp/10; decimalNumber += lastDigit*base; base = base*2; } cout<<"Decimal form of "<<n<<" is "<<decimalNumber<<endl;; } int main() { DecimalToBinary(23); BinaryToDecimal(10101); return 0; }
输出结果
Binary form of 23 is 10111 Decimal form of 10101 is 21
在上面给出的程序中,有两个函数DecimalToBinary和BinaryToDecimal。它们分别将数字从十进制转换为二进制,将二进制转换为十进制。
在DecimalToBinary函数中,十进制数n的二进制值存储在数组binaryNumber []中。使用while循环,循环的每次迭代将n模2运算的结果存储在binaryNumber []中。使用以下代码段显示。
while (n > 0) { binaryNumber[i] = n % 2; n = n / 2; i++; }
此后,使用for循环显示二进制数。如下所示。
cout<<"Binary form of "<<num<<" is "; for (int j = i - 1; j >= 0; j--) cout << binaryNumber[j];
在函数中BinaryToDecimal()
,使用while循环将二进制数转换为十进制数。LastDigit包含temp变量的最后一位。基数包含基值,例如2、4、6、8等。DecimalNumber包含前一个DecimalNumber值与LastDigit和基数的乘积之和。
使用以下代码片段演示了所有这些内容-
while (temp) { int lastDigit = temp % 10; temp = temp/10; decimalNumber += lastDigit*base; base = base*2; }
在main()
函数中,调用DecimalToBinary()
和BinaryToDecimal()
函数。如下所示。
DecimalToBinary(23); BinaryToDecimal(10101);