位操作
1、将a中的第10位置1,其他位不变
a |= (1<<10);
(1)将a中第10、15、20位置1,其他位不变
a |= ((1<<10)+(1<<15)+(1<<20));
2、将a中的第10位清零,其他位不变
a &= ~(1<<10);
(1)将a中第10、15、20位清零,其他位不变
a &= ~((1<<10)+(1<<15)+(1<<20));
3、将a中的第10位取反,其他位不变
a ^= (1<<10);
(1)将a中第10、15、20位取反,其他位不变
a ^= ((1<<10)+(1<<15)+(1<<20));
4、将值0x12345678(unsigned int)写到0x40000000地址上
第一种写法:
unsigned int * p = NULL; p = (unsigned int*)0x40000000; *p = (unsigned int)0x12345678;
第二种写法:
*(unsigned int *)0x40000000 = (unsigned int)0x12345678;
5、将地址0x400000000上的值读出来
unsigned int a = *(unsigned int*)0x40000000;
鉴于本人才疏学浅,所以其中不免有遗漏或者错误,恳请各位博友批评指正。