Submission

Status:
PPPPPPPPPP

Score: 100

User: Spongebob

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

Language: c

Time: 0.002 second

Submitted On: 2024-10-16 19:58:28

#include <stdio.h>
#include <string.h>
#include <math.h>

int main () {
    char input[5];
    int i, len;
    scanf("%4s", input);
    int base10 = 0;
    char base2[18];
    int index_base2 = 0;
    char base8[18];
    int index_base8 = 0;
    int temp;
    len = strlen(input);
    for (i = len-1; i >= 0; i--) {
        if ('0' <= input[i]  && input[i] <= '9') base10 += (input[i] - '0')*pow(16, len-1-i);
        else base10 += ((input[i] -'A') + 10)*pow(16, len-1-i);
    }
    if (base10 == 0) {
       printf("0\n0");
    }
    
    temp = base10;
    while (temp) {
          base2[index_base2] = (temp % 2) + '0';
          index_base2++;
          temp /= 2;
    }
    temp = base10;
    while (temp) {
          base8[index_base8] = (temp % 8) + '0';
          index_base8++;
          temp /= 8;
    }

    for (i = index_base2-1; i >= 0; i--) {
        printf("%c", base2[i]);
    }
    printf("\n");
    for (i = index_base8-1; i >= 0; i--) {
        printf("%c", base8[i]);
    }
    
    return 0;
}