Bit manipulation - MarekBykowski/readme GitHub Wiki

HOME ยป Bit manipulation

Set/clear bit

#define NTH_BIT 4                                                              
                                                                               
unsigned int addr = 0xffffffff;                                        
enum flags { clear, set };                                             
                                                                               
addr &= ~(1 << NTH_BIT);                                                 
printf("mb: clearing %dth bit %x results in %x\n", NTH_BIT, 0xffffffff, addr); 
                                                                               
addr |= (1 << NTH_BIT);                                                  
printf("mb: setting %dth bit in %x = %x\n", NTH_BIT, 0xffffffff, addr);                    

Clear bit 4, set bit 7 at X1

LDR X0, [X1]
AND X0, X0, #~(1 << 4)
ORR X0, X0, #(1 << 7)
STR X0, [X1]