ある数字の桁数を得たいとします。valに格納されていると仮定してください。
10進法であるか、16進法であるか、ベースはbaseで示すことにします。
int index=1; while(val/=base && ++index<len);
一見これで桁数が出る... と思った方。
悩みましたね。これだと浮動小数点エラーが出ます。GCC使ってます。
知ってしまえばどうということはないことです。
ここであっさりと書いておきますが、オペレーターの優先順位の問題でした。
括弧で囲ってやると正常に機能します。
お騒がせしました。