C++程序 二进制转十进制转换

C++程序 二进制转十进制转换

在程序开发中,经常需要将二进制数转换成十进制数。我们可以手动计算,也可以使用C++编写程序来完成这个过程。

二进制转十进制的算法

二进制转换成十进制的算法很简单,只需将二进制数的每一位乘以2的幂次方,然后累加即可。例如,要将二进制数1011转换成十进制数,可以按下列方法进行计算:

1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11

因此,1011的十进制表示为11。

这个算法可以用C++编写成一个函数,如下:

int binaryToDecimal(int n) {
   int num = n;
   int dec_value = 0;
   int base = 1; 
   int temp = num;

   while (temp) {
      int last_digit = temp % 10;
      temp = temp / 10;
      dec_value += last_digit * base;
      base = base * 2;
   }

   return dec_value;
}

十进制转二进制的算法

十进制数转换成二进制数的算法也非常简单,只要将十进制数除以2,将余数保存下来,不断重复这个过程直到商为0为止。最后,按倒序将所得到的余数排列在一起,就得到了相应的二进制数。例如,将十进制数11转换成二进制数:

11 / 2 = 5 余 1
5 / 2 = 2 余 1
2 / 2 = 1 余 0
1 / 2 = 0 余 1

因此,11的二进制表示为1011。

这个算法也可以用C++编写成一个函数,如下:

int decimalToBinary(int n) {
    int binary = 0;
    int base = 1;

    while (n) {
        int rem = n % 2;
        n = n / 2;
        binary += rem * base;
        base = base * 10;
    }

    return binary;
}

完整代码示例

下面是一个完整的C++程序,可以将二进制数转换为十进制数,或者将十进制数转换为二进制数。所有代码都使用注释进行了详细解释,帮助您理解算法。

#include<iostream>
#include<cmath>

using namespace std;

// 将二进制数转换为十进制数
int binaryToDecimal(int n) {
   int num = n;
   int dec_value = 0;
   int base = 1; 
   int temp = num;

   while (temp) {
      int last_digit = temp % 10;
      temp = temp / 10;
      dec_value += last_digit * base;
      base = base * 2;
   }

   return dec_value;
}

// 将十进制数转换为二进制数
int decimalToBinary(int n) {
    int binary = 0;
    int base = 1;

    while (n) {
        int rem = n % 2;
        n = n / 2;
        binary += rem * base;
        base = base * 10;
    }

    return binary;
}

// 主函数,用于输入输出
int main() {
    int n, choice;
    cout << "Enter the number you want to convert: ";
    cin >> n;

    cout << "\nSelect your choice: \n1. Convert binary to decimal.\n2. Convert decimal to binary.\nYour choice: ";
    cin >> choice;

    switch (choice) {
        case 1: {
            cout << "The decimal equivalent of " << n << " is " << binaryToDecimal(n) << endl;
            break;
        }
        case 2: {
            cout << "The binary equivalent of " << n << " is " << decimalToBinary(n) << endl;
            break;
           }
    default: {
        cout << "Invalid choice. Please select 1 or 2." << endl;
    }
    }

    return 0;
}

结论

因此,我们可以看到,使用C++编写二进制转十进制或十进制转二进制的程序非常简单。我们只需要使用简单的算法和一些基本的编程知识,就可以完成这个任务。使用C++进行编程可以大大简化我们日常生活中的重复和枯燥的工作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程