位操作

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;

 

posted @ 2018-03-28 08:41  沙漠里的孤鲸  阅读(270)  评论(0编辑  收藏  举报