Submission

Status:

--------------------

Subtask/Task Score:

0/100

Score: 0

User: wasupum

Problemset: Abacus

Language: c

Time: 0.002 second

Submitted On: 2025-10-25 15:06:44

#include <stdio.h>
#include <string.h>
int hexdec(char hex[]){
    size_t len = strlen(hex);
    int dec = 0 ;
    int base = 1;
    for(size_t i = len ; i-- > 0; ){
        char c = hex[i];
        if(c >= '0' && c <= '9')dec += (c - '0') * base;
        else dec += (c - 'A'+ 10)*base;
        base *= 16;
    }
    return dec;
}
void decbin(int dec){
    int bin[100], i = 0;
    while(dec > 0){
        bin[i++] = dec % 2;
        dec /= 2;
    }
    for(int j = i - 1;j >= 0 ; j--){
        printf("%d",bin[j]);
    }
    printf("\n");
}
void decoct(int dec){
    int oct[100], i = 0;
    while(dec > 0){
        oct[i++] = dec % 8;
        dec /= 8;
    }
    for(int j = i-1; j >= 0; j--){
        printf("%d",oct[j]);
    }
}
int main(void){
    char hex[4];
    scanf("%s",hex);
    int dec = hexdec(hex);
    decbin(dec);
    decoct(dec);
    return 0;
}