>>350
うむむ。分解するとますます分からなくなりますた。
  if(s) {
    p = s + strlen(s);
    p--;
    while(p >= s) {
      n <<= 1;
      n += *p;
      p--;
    }
  }