"Morten S. Kappel" <mskappel@mskappel.dk> wrote in message
news:xUTzf.5066$Cl2.123518@news000.worldonline.dk...
> Hej
>
> Jeg er ved at lave et c prog til pic, og skal her undersøge hver enkelt
> bit (sand/falsk) uafhængig af hvad de andre bit er.
> Har gjort det engang på skolen i sin tid men kan ikke lige komme på
> hvordan vi gjorde det.
> Nogle der kan give et hint.
Du kan bruge AND (&) til at teste om en bit er sat.
Måske kan du få lidt inspiration fra disse:
/*
** Macros to manipulate bits in an array of char.
** These macros assume CHAR_BIT is one of either 8, 16, or 32.
*/
#define MASK CHAR_BIT-1
#define SHIFT ((CHAR_BIT==8)?3:(CHAR_BIT==16)?4:5)
#define BitOff(a,x) ((void)((a)[(x)>>SHIFT] &= ~(1 << ((x)&MASK))))
#define BitOn(a,x) ((void)((a)[(x)>>SHIFT] |= (1 << ((x)&MASK))))
#define BitFlip(a,x) ((void)((a)[(x)>>SHIFT] ^= (1 << ((x)&MASK))))
#define IsBit(a,x) ((a)[(x)>>SHIFT] & (1 << ((x)&MASK)))
Sakset fra
http://paul.rutgers.edu/~rhoads/Code/bit_ops.txt