在这个 C++ 程序中,我们必须使用一个函数将一个十进制数转换为其八进制数。
要将十进制转换为八进制,我们必须将十进制数除以八进制数字系统的基数,即 8。让我们举个例子来清楚地理解它。以 204 作为我们想要转换为八进制数的十进制数。这里我们首先将数字 204 除以 8,得到 25 作为结果,4 作为余数,现在再次将 25 除以 8。继续除,直到数字小于除数,这里是 8。
204/8 商= 25,余数= 4;
25/8 商=3,余数= 1;
将数字除尽或得到小于 8 的余数后,停止除法并从最后一个余数开始向前写。这里我们得到 314 作为结果,也就是给定十进制数 204 的八进制值。
要求用户输入一个十进制数。将该数字存入变量 decimalNum 中;定义一个函数来计算与输入的十进制数对应的八进制数。
void DecimalToOctal(int);
这里,函数将十进制数作为其参数,并将其转换为等效的八进制值。
void DecimalToOctal(int decimalNum)
{
while(decimalNum != 0)
{
octalNum[i] = decimalNum%8;
i++;
decimalNum = decimalNum/8;
}
}
当函数被调用时,`while 循环`的条件被评估。即条件 **decimalNum!=0** 被评估为真,因此程序流程进入循环。在那里,**decimalNum%8** 被初始化为 **octalNum[i]**。**i** 的值递增。**decimalNum/8** 被初始化为 **decimalNum**。现在程序控制返回并再次用变量 **decimalNum** 的新值评估 `while 循环` 条件。继续评估 `while 循环` 的过程,直到其条件评估为假。我们必须从最后一个索引到第 0 个索引打印 **octalNum[]** 的值。因此,使用 `for 循环`,我们从 i-1 开始打印 **octalNum[]** 的值,直到第 0 个索引。
步骤 1: 调用头文件 iostream.
步骤 2: 使用 `namespace std.`。
步骤 3: 声明用户定义函数 void DecimalToOctal(int);
步骤 4: 打开整数类型的主函数;int main()。
步骤 5: 声明整数类型变量 decimalNum;
步骤 6: 要求用户输入一个十进制数
步骤 7:将数字存入变量 decimalNum 中;
步骤 8: 调用函数 DecimalToOctal(int decimalNum)
找到 decimalNum 的余数并将其存储在数组 octalNum[i] 中;
通过将 decimalNum/8 赋值给 decimalNum 来更新其值并继续。
步骤 9: 打印函数返回的值
步骤 10::退出
#include<iostream>
using namespace std;
void DecimalToOctal(int);
int octalNum[50];
static int i;
int main()
{
int decimalNum;
cout<<"Enter any Decimal number: ";
cin>>decimalNum;
DecimalToOctal(decimalNum);
cout<<"\nEquivalent Octal Value = ";
for(i=(i-1); i>=0; i--)
cout<<octalNum[i];
cout<<endl;
return 0;
}
void DecimalToOctal(int decimalNum)
{
while(decimalNum != 0)
{
octalNum[i] = decimalNum%8;
i++;
decimalNum = decimalNum/8;
}
}
Enter any Decimal number: 365 Equivalent Octal Value = 555