位操作

Posted 菜头大大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作相关的知识,希望对你有一定的参考价值。

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;

 

以上是关于位操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

Notepad++编辑器——Verilog代码片段直接编译

操作栏标签片段中的片段?