Write a C++ program can display decimal numbers as octal numbers and octal numbers are decimal numbers.
1, decimal numbers to octal numbers
Click Here to View the Solution:
#include <iostream>
#include <cmath>
using namespace std;
long long DecimalToOctal(int);
int main()
{
int num, ans;
cout << "Insert any decimal number to be converted: ";
cin >> num;
ans = DecimalToOctal(num);
cout << num << " is " << ans << " in Octal " << endl ;
return 0;
}
long long DecimalToOctal(int num)
{
long long ans = 0;
int y,x = 1;
while (num!=0)
{
y = num%8;
num /= 8;
ans += y*x;
x *= 10;
}
return ans;
}
Click Here to View the Output:
Insert any decimal number to be converted: 123 123 is 173 in Octal
Click Here to View the Explanation:
- The user enters a number
num
to be converted to octal number. - A function
DecimalToOctal
is created using awhile
loop. - The function divide the number by 8 and stores the remainder in a variable
y
. The value ofnum
is updated by further dividing it by 8. ans
was originally set to 0 and nowy*x
is added toans
and the value is updated again.- The value of
x
is also updated by multiplying it by 10. - The function is called in the
main ()
function.
2. octal numbers as decimal numbers
Click Here to View the Solution:
#include <iostream>
#include <cmath>
using namespace std;
int OctalToDecimal(int num);
int main()
{
int num;
cout << "Insert an octal number to be converted: ";
cin >> num;
cout << num << " is " << OctalToDecimal(num) << " in Decimal";
return 0;
}
int OctalToDecimal(int num)
{
int ans = 0, x = 0, Rem;
while (num!=0)
{
Rem = num%10;
num /= 10;
ans += Rem*pow(8,x);
++x;
}
return ans;
}
Click Here to View the Output:
Insert an octal number to be converted: 173 173 is 123 in Decimal
Click Here to View the Explanation:
- The user is requested to enter a number to be converted and the entered number is stored as a variable
num
. num
is divided by 10 and the remainder is stored asRem
.num
is divided by 10 and the new value is updated in thenum
variable.- ans is assigned a new value:
ans = ans + Rem*pow(8,x)
- The value of
x
is incremented by 1 through every iteration. - The function is called in the
main ()
function.