Kezdőoldal » Számítástechnika » Programozás » C nyelvben bit egyenlőség...

C nyelvben bit egyenlőség vizsgálat nullák esetén?

Figyelt kérdés

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!



2013. máj. 29. 22:07
 1/1 anonim ***** válasza:

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) )

2013. máj. 30. 10:49
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!