N&1とM&1の周りにパランセスを置きます。
if ((n&1) != (m&1))
これは!=以前は&: http://www.swansontec.com/sopc.html
質問
2桁の2桁の署名整数を比較する新しいプログラムを書きます。距離をハミングすることで比較します。しかし、私のアルゴリズムは完全に機能しません。このコードの何が問題なのか教えてもらえますか:(どうもありがとう!
これが私のカウント方法です。
int countHammDist(unsigned int n, unsigned int m)
{
int i=0;
unsigned int count = 0 ;
for(i=0; i<8; i++){
if( n&1 != m&1 ) {
count++;
}
n >>= 1;
m >>= 1;
}
return count;
}
AおよびB 8ビットバイナリ。
PrintInBinary(a);
PrintInBinary(b);
printf("\n %d", countHammDist(a,b));
出力を見せてください。
Enter two unsigned integers (0-99): 55 64
Your choices are 55 and 64
Number A: 00110111
Number B: 01000000
Hamming distance is ; 5
解決
他のヒント
あなたはシフトする必要があります m
適切なビットを比較することもできます。
また、平等テストが合格するかどうかに関係なく、それらをシフトする必要があります。 (シフトを内側の外側に移動します }
)