是否有可以将任何基数n(例如2到36)转换为二进制的算法或公式?我环顾网络,无法找到我想要的东西。
答案 0 :(得分:0)
让你开始的东西。
unsigned strtou(const char *s, unsigned base) {
unsigned y = 0;
while (*s) {
unsigned digit;
if (isdigit(*s)) digit = ch - '0';
else if (isupper(*s)) digit = ch - 'A' + 10;
else if (islower(*s)) digit = ch - 'a' + 10;
else Handle_IllegalDigit();
if (digit >= base) Handle_IllegalDigit();
y = y*base + digit;
s++;
}
return y;
}