这很简单。您要转换为基本digit_count,然后将索引建立到数组中,而不是将数字转换为数字。
要转换为任意基数,您需要除法和余数。
这是一个比我以前使用的版本更好的版本,因为它实际上创建了一个缓冲区(而不是将其打印出来),丢弃了递归进行迭代,并且在C语言中而不是在我以前的C /
Python大杂烩中。
因为它使用静态缓冲区,所以代码不是线程安全的。另请注意,如果数量太大,则不会错误检查代码不会使缓冲区下溢。最后,它使用了一种技巧,即从末尾到末尾构建字符串,然后将指针返回缓冲区的中间,这样就不必在末尾反转数字。
char *getnum(int x){ static char buffer[1024]; int idx = 1024; buffer[--idx] = ' '; if (x == 0) buffer[--idx] = digits[0]; else { while (x != 0) { buffer[--idx] = digits[x % digit_count]; x /= digit_count; } } return buffer + idx;}


