- posted
17 years ago
bit parzystosci w C
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
Thus wrote "Pawe?" snipped-for-privacy@poczta.onet.pl>:
Można prościej ;^)
Na przykład tak:
x=(x&0x0f)^(x>>4); x=(x&0x03)^(x>>2); x=(x&0x01)^(x>>1);
Albo to samo, tylko szybciej:
x^=x>>4; x^=x>>2; x^=x>>1; x&=1;
Lub inne wariacje na temat. Bo to czego potrzebujesz to wszystkie bity zexorowane ze sobą.
Paweł
- Vote on answer
- posted
17 years ago
W artykule <ei01b1$gja$ snipped-for-privacy@news.onet.pl> Paweł napisal(a):
Jak potrzebujesz szybciej to mozesz zrobic tablice wynikow i adresowac tym bajtem. W druga strone tak samo. KO
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
Paweł napisał(a):
^^^^^^^^^^^^^^^^^^^^ tutaj masz blad: powinno byc: ..10 ^ ..11 = ..01 a nastepnie: ..1 ^ ..0 = ..1 czyli sie zgadza (wstawilem kropki, bo pozostale bity sa 0). Pewnie to juz rozgryzles, ale (tak jak napisal Pawel Wiecek) trzeba zeXORowac wszystkie bity ze soba. Mozna to zrobic po kolei: czyli 1z2, nastepnie wynik tego z 3, nastepnie wynik tego z 4 itd... Albo szybciej, tak jak rozpisal Pawel: podzielic bajt na polowe i zXORowac, nastepnie otrzymany wynik 4bitowy podzielic po 2 bity i zXORowac i w koncu zXORowac 2bity ze soba. I mamy wynik
pozdrawiam chojny
- Vote on answer
- posted
17 years ago
- Vote on answer
- posted
17 years ago
Hm, czy pawel podal jaki to procesor ? Bo wiele takiej operacji nie ma..
J.