题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h> #include <math.h> #include<ctype.h> void reverse(char* s) { int i = 1, len = 0, j = 0; char* p=s; char c; while (*p != 0) { len++; p++; } for (i = 0; i <= len / 2 - 1;i++) { c = *(s + i); *(s + i) = *(s + len - i - 1); *(s+len - i - 1) = c; } } int main() { char a[100], b; int i = 1, j=0, sum = 0; char* gets(char* a); gets(a); reverse(a); while ((a[j] != 'x')) { switch (a[j]) { case 'A': sum = sum + 10 * i; break; case 'B': sum = sum + 11 * i; break; case 'C': sum = sum + 12 * i; break; case 'D': sum = sum + 13 * i; break; case 'E': sum = sum + 14 * i; break; case 'F': sum = sum + 15 * i; break; case '0': sum = sum + 0 * i; break; case '1': sum = sum + 1 * i; break; case '2': sum = sum + 2 * i; break; case '3': sum = sum + 3 * i; break; case '4': sum = sum + 4 * i; break; case '5': sum = sum + 5 * i; break; case '6': sum = sum + 6 * i; break; case '7': sum = sum + 7 * i; break; case '8': sum = sum + 8 * i; break; case '9': sum = sum + 9 * i; break; } i = i * 16; j++; } printf("%d", sum); return 0; }
}