Octal to Hexadecimal conversion - C++ Program

Q. Write a C++ program to convert octal number to hexadecimal number.

Answer:

Following program is converting a octal number to hexadecimal number.

#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
        int a[20], b[20], rev[20];
        int h, i, j, k, l, x, fra, flag, rem, num1, num3;
        float rem1, num2, num4, dno;
        char s[20];
        x = fra = flag = rem = 0;
        rem1 = 0.0;
        cout<<"\n Enter Octal Number : ";
        cin>>s;
        for(i=0,j=0,k=0; i<strlen(s); i++)
        {
                if(s[i]=='.')
                {
                        flag=1;
                }
                else if(flag==0)
                {
                        a[j++]=s[i]-48;
                }
                else if(flag==1)
                {
                        b[k++]=s[i]-48;
                }
        }
        x=j;
        fra=k;
        for(j=0,i=x-1; j<x; j++,i--)
        {
                rem = rem +(a[j] * pow(8,i));
        }
        for(k=0,i=1; k<fra; k++,i++)
        {
                rem1 = rem1 +(b[k] / pow(8,i));
        }
        rem1 = rem + rem1;
        dno = rem1;
        num1 = (int)dno;
        num2 = dno - num1;

        i=0;
        while(num1!=0)
        {
                rem = num1 % 16;
                rev[i] = rem;
                num1 = num1 /16;
                i++;
        }
        j=0;
        while(num2!=0.0)
        {
                num2 = num2 * 16;
                num3 = (int)num2;
                num4 = num2 - num3;
                num2 = num4;
                a[j] = num3;
                j++;
                if(j==4)
                {
                        break;
                }
        }
        l=i;
        cout<<"\n Conversion of Octal Number to Hexadecimal Number : ";
        for(i=l-1; i>=0; i--)
        {
                if(rev[i]==10)
                {
                        cout<<"A";
                }
                else if(rev[i]==11)
                {
                        cout<<"B";
                }
                else if(rev[i]==12)
                {
                        cout<<"C";
                }
                else if(rev[i]==13)
                {
                        cout<<"D";
                }
                else if(rev[i]==14)
                {
                        cout<<"E";
                }
                else if(rev[i]==15)
                {
                        cout<<"F";
                }
                else
                {
                        cout<<rev[i];
                }
        }
        h=j;
        cout<<".";
        for(k=0; k<h; k++)
        {
                if(a[k]==10)
                {
                        cout<<"A";
                }
                else if(a[k]==11)
                {
                        cout<<"B";
                }
                else if(a[k]==12)
                {
                        cout<<"C";
                }
                else if(a[k]==13)
                {
                        cout<<"D";
                }
                else if(a[k]==14)
                {
                        cout<<"E";
                }
                else if(a[k]==15)
                {
                        cout<<"F";
                }
                else
                {
                        cout<<a[k];
                }
        }
        return 0;
}


Output:

octal to hexa