66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
#include <ctype.h>
|
|||
|
|
|||
|
void convert(int n, int b, char **result, int *size) {
|
|||
|
// <20>p<EFBFBD><70><EFBFBD>ݭn<DDAD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int temp = n;
|
|||
|
*size = 0;
|
|||
|
while (temp > 0) {
|
|||
|
temp /= b;
|
|||
|
(*size)++;
|
|||
|
}
|
|||
|
|
|||
|
// <20>t<EFBFBD>m<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
|
|||
|
*result = (char*)malloc((*size + 1) * sizeof(char));
|
|||
|
if (*result == NULL) {
|
|||
|
printf("<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>m<EFBFBD><EFBFBD><EFBFBD>ѡI\n");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// <20>i<EFBFBD><69><EFBFBD>ഫ
|
|||
|
int i = *size - 1;
|
|||
|
while (n > 0) {
|
|||
|
int remainder = n % b;
|
|||
|
if (remainder < 10) {
|
|||
|
(*result)[i] = remainder + '0';
|
|||
|
} else {
|
|||
|
(*result)[i] = (remainder - 10) + 'A';
|
|||
|
}
|
|||
|
n /= b;
|
|||
|
i--;
|
|||
|
}
|
|||
|
(*result)[*size] = '\0'; // <20>K<EFBFBD>[<5B>r<EFBFBD>굲<EFBFBD><EAB5B2>
|
|||
|
}
|
|||
|
|
|||
|
int main() {
|
|||
|
int n, b;
|
|||
|
char *result; // <20>ΨӦs<D3A6><73><EFBFBD>ഫ<EFBFBD><E0B4AB><EFBFBD>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int size; // <20><><EFBFBD>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
while(1) {
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>ഫ<EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD>i<EFBFBD>쥿<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ==> ");
|
|||
|
scanf("%d", &n);
|
|||
|
|
|||
|
if(n == -1) break;
|
|||
|
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>ഫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ==> ");
|
|||
|
scanf("%d", &b);
|
|||
|
|
|||
|
convert(n, b, &result, &size); // <20>ǤJ<C7A4><4A><EFBFBD>Ъ<EFBFBD><D0AA><EFBFBD><EFBFBD>}
|
|||
|
|
|||
|
printf("(%d)_10 = (", n);
|
|||
|
for(int i = 0; i < size; i++) {
|
|||
|
printf("%c", result[i]);
|
|||
|
}
|
|||
|
printf(")_%d\n", b);
|
|||
|
|
|||
|
free(result); // <20><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>m<EFBFBD><6D><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
printf("<EFBFBD>{<7B><><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD>...<2E><><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD>~<7E><>\n");
|
|||
|
system("pause");
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|