Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Sunsblad

Problemset: แปลงเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-11-21 13:49:11

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
    string hexvalue;
    int bidegit[40];
    int octal[40];
    int toDec = 0, tempDec = 0 , lastdegit = 0, r = 0;
    cin >> hexvalue;
    for (int i = 0; i < hexvalue.size(); i++)
    {
        if(int(hexvalue[i]>=65))
        {
            toDec += (hexvalue[i] - 55) * pow(16, hexvalue.size() - i-1);
        }
        else
        {
            toDec += (hexvalue[i] - 48) * pow(16, hexvalue.size() - i-1);
        }
        
    }
    tempDec = toDec;
    while(tempDec > 0)
    {
        bidegit[r] = tempDec % 2;
        tempDec /= 2;
        r++;
    }
    for (int i = 0; i < r; i++)
    {
        cout << bidegit[r - i-1];
    }
    tempDec = toDec;
    cout << '\n';
    r = 0;
    while (tempDec > 0)
    {
        octal[r] = tempDec % 8;
        tempDec /= 8;
        r++;
    }
    for (int i = 0; i < r; i++)
    {
        cout << octal[r - i - 1];
    }
    
    
    
}