将任何基数转换为二进制

时间:2014-09-30 21:32:23

标签: binary base

是否有可以将任何基数n(例如2到36)转换为二进制的算法或公式?我环顾网络,无法找到我想要的东西。

1 个答案:

答案 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;
}