Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: kenkong587
Problemset: แปลงเลขฐาน
Language: c
Time: 0.003 second
Submitted On: 2026-10-04 16:05:57
#include <stdio.h>
#include <string.h>
#include <math.h>
int main(){
char num[5];
scanf("%s",num);
int l = strlen(num);
int n = 0;
//0 = 48 and A = 65
for(int i = 0;i < l;i++){
if(num[i] < 65){
n += ((int)num[i] - 48) * pow(16,l - i - 1);
}
else{
n += ((int)num[i] - 55) * pow(16,l - i - 1);
}
}
int a = n;
int l1 = 0;
while(a > 0){
a /= 2;
l1++;
}
a = n;
int basetwo[l1];
for(int i = 0;i < l1;i++){
basetwo[i] = a % 2;
a /= 2;
}
for(int i = l1 - 1;i > -1;i--){
printf("%d",basetwo[i]);
}
printf("\n");
int b = n;
int l2 = 0;
while(b > 0){
b /= 8;
l2++;
}
b = n;
int baseeight[l2];
for(int i = 0;i < l2;i++){
baseeight[i] = b % 8;
b /= 8;
}
for(int i = l2 - 1;i > -1;i--){
printf("%d",baseeight[i]);
}
return 0;
}