题解 | 进制转换
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include <string.h>
#include <math.h>
#define BUFFER_SIZE (50)
int convert_to_digit(char a) {
if (a >= '0' && a <= '9') {
return (a-'0');
} else if (a >= 'A' && a <= 'F'){
return (a-'A'+10);
} else{
printf("error: %c\n", a);
}
return 0;
}
int main() {
char buffer[BUFFER_SIZE];
scanf("%s", buffer);
char hex[BUFFER_SIZE];
memcpy(hex, buffer+2, sizeof(buffer)-2);
// printf("%s\n", hex);
int result = 0;
int index = 0;
for (int i=strlen(hex)-1; i>=0; i--) {
int temp = convert_to_digit(hex[i]);
// printf("digit: %d\n", temp);
result += pow(16, index) * temp;
// printf("result: %d\n", result);
index ++;
}
printf("%d\n", result);
return 0;
}
查看6道真题和解析