分享一下关于c语言的进制转换
一、十进制转2-10进制
m为需要转换的数,n为需要转换的进制
#include <stdio.h>
void change(int m, int n) {
if (m == 0) return ;
change(m / n, n);
printf("%d", m % n);
}
int main() {
int m, n;
scanf("%d %d", &m ,&n);
change(m, n);
return 0;
}
二、2-32进制转十进制
#include <stdio.h>
#define swap(a, b) {\
__typeof(a) t = a;\
a = b;\
b = t;\
}
void sort (int *arr1, int k) {
for (int i = 0; i < k - 1; i++) {
for (int j = 0; j < k - i - 1; j++) {
if (arr1[j] > arr1[j + 1]) swap(arr1[j], arr1[j + 1]);
}
}
}
int main() {
char arr[10] = {0};
int arr1[10000] = {0};
int k = 0;
int min = 999999999;
while (scanf("%s", arr) != EOF) {
int sum = 0;
for (int i = 4, ind = 1; i >= 0; i--, ind = ind * 36) {
int t = arr[i];
if (t <= '9') t = arr[i] - '0';
else t = arr[i] - 'A' + 10;
sum += t * ind;
}
arr1[k++] = sum;
}
sort(arr1, k);
for (int i = 0 ; i < k - 1; i++) {
if ((arr1[i + 1] - arr1[i]) < min) min = arr1[i + 1] - arr1[i];
}
printf("%d\n", min);
return 0;
}