Tag: 基地

如何将任意大整数从基数10转换为基数16?

该程序需要输入任意大的无符号整数,该整数在基数10中表示为一个字符串。输出是表示基数16中的整数的另一个字符串。 例如,输入为“1234567890987654321234567890987654321234567890987654321”,输出为“CE3B5A137DD015278E09864703E4FF9952FF6B62C1CB1” 算法越快越好。 如果输入限制在32位或64位整数范围内,那将非常容易; 例如,以下代码可以进行转换: #define MAX_BUFFER 16 char hex[] = “0123456789ABCDEF”; char* dec2hex(unsigned input) { char buff[MAX_BUFFER]; int i = 0, j = 0; char* output; if (input == 0) { buff[0] = hex[0]; i = 1; } else { while (input) { buff[i++] = hex[input % 16]; input = input / 16; } […]