C nyelvben bit egyenlőség vizsgálat nullák esetén?
Sziasztok! Mondjuk, hogy van a következő kódom, azt szeretném megtudni, hogy pl a 0. és az 1. bitje megegyezik -e egy pár tömbbe bekért karakternek, és ha igen, hány darab ilyen van?
(tételezzük fel, hogy egy karakter tömbben már vannak elemek)
int darab(char *a) //függvény
{
int db=0, i=0; // darab számláló
while(i<10) //legyen mondjuk 10 elemű a tömbünk..
{
if((*(a+i)&0b1)==(*(a+i)&0b10)) //bitvizsgálat
{
db++;
}
i++;
}
return db;
}
A probléma az, hogy nem megfelelő értéket ad vissza, illetve szerintem ez csak akkor működik, ha 1es biteket keresek, nullákkal pedig nem jó. Valami ötlet ezekre? Köszi!
egyrészt ne tedd fel, hogy hány elemű a karaktertömb, hanem vedd át paraméterként
másrészt ne használj bináris reprezentációt, mert az nem szabvány, hanem csak néhány fordítóban elérhető (és emiatt nem is értem pontosan mit is csinál a feltételed)
és a lényeg: a feltétel legyen ez
if( (a[i]>>1)%2 == (a[i]%2) )
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!