14. juni 2007 - 16:03Der er
2 kommentarer og 1 løsning
Skiftning af bits
Hej,
Jeg er ved at sende nogle bits til et display. Er det en nem og hurtig måde er lave følgende:
Udgangspunkt: 10100000 Resultat: 01010000
Der skal ikke laves nogen operation på de sidste fire bits, men bit 8 skal blive til bit 5, bit 7 skal blive til bit 6, bit 6 skal blive til bit 7 og bit 5 skal blive til bit 8. Man spejlvender vel sådan set de "sidste" fire bits.
Jeg tror ikke rigtigt at der er en meget smart måde at gøre det på.
Du kunne: static const unsigned char Mirror[16] = {0x00, 0x80, 0x40, 0xC0, ... 0xF0}; unsigned char result = (input & 0x0F) | Mirror[input >> 4]; Hvis det skal være endnu hurtigere og du har plads nok (256 bytes) kan du lave det hele som et tabel opslag.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.