二進での桁数を、仕事をさぼって仕事の合間に考えてみました。 nagise さんのが速そうだったので、それを元にごちゃごちゃ弄ってると、 int binaryDigit(unsigned int val) { int digit = 0; digit += (((val >> 16) + 0xFFFF) & 0x10000) >> 12; digit += (((val >> digit) + 0xFF00) & 0x10000) >> 13; digit += (((val >> digit) + 0xF0) & 0x100) >> 6; digit += (((val >> digit) + 0xC) & 0x10) >> 3; digit += (((val >> digit) + 0x2) & 0x4) >> 2; return digit + 1; } こんな風になりましたw >「