0
intを32ビットまで与えることができる関数を作成する必要がありました。奇数ビットが1であれば1を返し、そうでなければ0を返すと仮定する。私はそれがマスクと一致しない場合はゼロを返しますが、私はそれがマスクに一致する場合、それが返される理由は理解しません。それは&の比較の結果が0に等しくないため、trueを返しますか?結果が1である理由を理解しない
int any_odd_one(unsigned x)
{
return (x&0xAAAAAAAA)!=0;
あなたはそれがうまくいかないとか、それがうまくいかない理由を理解できないと言っていますか? Cでのブール式の結果は '0'または' 1'です。 '&'は「比較」ではなく、ビット単位のマスクです。比較は '!='で行われます。 –
それは動作しますが、なぜそれが1を返していたのか分かりませんでした。そして、私の質問に答えることに感謝します。 – Stan