Metti i pararanthes intorno a N & 1 e M & 1.
if ((n&1) != (m&1))
Questo perché! = È prima e: http://www.swansontec.com/sopc.html
Domanda
Scrivo un nuovo programma che confronta 2 interi senza segno a due cifre. Paragonati a distanze di martellare. Ma il mio algoritmo non funziona perfettamente. Puoi dirmi cosa c'è che non va in questo codice :( Grazie mille !!
Questo è il mio metodo di conteggio;
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;
}
Binari a 8 bit a 8 bit.
PrintInBinary(a);
PrintInBinary(b);
printf("\n %d", countHammDist(a,b));
Lascia che ti mostri l'output;
Enter two unsigned integers (0-99): 55 64
Your choices are 55 and 64
Number A: 00110111
Number B: 01000000
Hamming distance is ; 5
Soluzione
Metti i pararanthes intorno a N & 1 e M & 1.
if ((n&1) != (m&1))
Questo perché! = È prima e: http://www.swansontec.com/sopc.html
Altri suggerimenti
Devi cambiare m
troppo per confrontare i bit giusti.
E devi spostarli indipendentemente dal fatto che il test di uguaglianza sia superato. (Sposta i turni fuori dall'interno }
)