You are on page 1of 2

#include <stdio.

h>
#include <string.h>
int charToDigit(char c) {
if (c >= '0' && c <= '9') return c - '0';
if (c >= 'A' && c <= 'F') return c - 'A' + 10;
if (c >= 'a' && c <= 'f') return c - 'a' + 10;
return -1;
}
char digitToChar(int d) {
if (d >= 0 && d <= 9) return '0' + d;
if (d >= 10 && d <= 15) return 'A' + d - 10;
return '?';
}
int main() {
char num[50], convertedNum[50];
int base, targetBase;
printf("nhap so can chuyen doi: ");
scanf("%s", num);
printf("he so ban dau : ");
scanf("%d", &base);
printf("He so can chuyen doi sang: ");
scanf("%d", &targetBase);
int decimalNum = 0, i, length = strlen(num);
for (i = 0; i < length; ++i) {
decimalNum = decimalNum * base + charToDigit(num[i]);
}
i = 0;
while (decimalNum != 0) {
convertedNum[i] = digitToChar(decimalNum % targetBase);
decimalNum /= targetBase;
++i;
}
convertedNum[i] = '\0';
printf("So sau khi chuyen doi: %s\n", strrev(convertedNum));
return 0;
}

Bài chạy code

You might also like