「コンピュータシステム」で機能を見つけました:
int fun_a(unsigned x){
int val = 0;
while(x){
val ^= x;
x >>= 1;
}
return val & 0x1;
}
x に奇数の「1」が含まれる場合は 1 を返し、x に偶数の「1」が含まれる場合は 0 を返します。「val & 0x1」チェック val が奇数または偶数であることは知っていますが、val のビット数をどのようにカウントするかはわかりません。