この問題を解決するには、ビット演算とポインター演算しか使用できません。バイナリから unsigned int に変換しています。
私が書いている関数は次のとおりです。
unsigned int atob(const char* nptr);
atob("101") は 5 を返し、atob("11000") は 24 を返し、atob("11$") は 3 を返し、atop("") は 0 を返す必要があります。
私はビット単位の操作にかなり慣れていないので、その分野で特に助けが必要です。
編集:
nptr はインクリメントのみ可能で、他の inc/dec は許可されません。