C++ 程序:将十进制数转换为二进制数


2023年1月31日, Learn eTutorial
1604

在这个 C++ 程序中,我们将用户输入的十进制数转换为其对应的二进制数。

十进制数

在代数中,十进制数可以定义为以 10 为基数的数字,即从 0 到 9 的数字。

二进制数

一种只使用两个数字(0 和 1)且以 2 为基数表示数字的数制称为二进制数制。例如,112 是一个二进制数。

如何将十进制数转换为二进制数?

要将十进制数转换为其等效的二进制数,我们每次将十进制数除以 2,直到得到 0 作为被除数。让我们以 13 为例将其转换为二进制数。

  • 13 ÷ 2:6 余 1
  • 6 ÷ 2:3 余 0
  • 3 ÷ 2:1 余 1
  • 1 ÷ 2:0 余 1

现在我们从最后到第一个(即 MSB 到 LSB)获取余数的位。因此,1310 = 11012。

如何编写 C++ 程序将十进制数转换为二进制数?

显示消息提示用户输入。程序必须将此十进制输入转换为其二进制值。这里我们使用三个变量 decimalnum、binarynum[20]i。最初,i 的值为 0。当用户输入十进制数时,它存储在 decimalnum 中。现在,一个 while 循环 使用条件 decimalnum!=0 进行评估。


while(decimalnum!=0)
{
   binarynum[i] = decimalnum%2;
   i++;
   decimalnum = decimalnum/2;
}


在这里,当条件评估为 true 时,程序流进入循环,并且 decimalnum%2 被初始化为 binarynum[i]i 的值递增。decimalnum/2 被初始化为 decimalnum。现在 decimalnum = decimalnum/2;控制流返回并再次评估 while 循环,并且该过程重复,直到 while 循环 的条件评估为 false。在 while 循环 结束后,我们使用另一个 for 循环 以相反的顺序打印二进制数。

算法

步骤 1: 调用头文件 iostream。

步骤 2: 使用命名空间 std。

步骤 3: 打开主函数;int main().

步骤 4: 声明两个整数类型变量 decimalnum、binarynum[20]、i=0;

步骤 5: 要求用户输入一个数字;

步骤 6: 将数字获取到变量 decimalnum 中;

步骤 7: 使用条件 decimalnum!=0 评估 while 循环;

步骤 8: 如果为 true,则计算 decimalnum%2 并将值存储到 binarynum[i]

步骤 9: 增加 i 的值;

步骤 10: 通过 decimalnum/2 更新变量 decimalnum

步骤 11: 继续执行步骤 7步骤 10,直到条件为假;

步骤 12: 使用 for 循环打印 binarynum[]

步骤 13: 退出;

C++ 源代码

                                          #include<iostream>
using namespace std;
int main()
{
    int decimalnum, binarynum[20], i=0;
    cout<<"Enter the decimal Number: ";
    cin>>decimalnum;
    while(decimalnum!=0)
    {
        binarynum[i] = decimalnum%2;
        i++;
        decimalnum = decimalnum/2;
    }
    cout<<"\nEquivalent Binary Value: ";
    for(i=(i-1); i>=0; i--)
        cout<<binarynum[i];
    cout<<endl;
    return 0;
}
                                      

输出

Enter the decimal Number: 125
Equivalent Binary Value: 1111101