且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

位运算小随笔

更新时间:2022-09-13 15:32:01

按位或

| :

任何数 | 0为他本身,任何数 | 1为 0

如置二进制某位切1操作:

#define SET(a,num) (x) |=(1<<(n-1))

按位与

& :

任何数 & 1为他本身,任何数 & 0为 0

如置二进制某位切0操作:

#define SET(a,num) (x) &=(~(1<<(n-1)))

按位异或

^ :

相同为0,相异为1,任何数^0为他本身

<u>注意,位运算都遵循结合律和交换律</u>!

隐式整型提升

比如一个 char 类型变量 a 大小为 1,但是对 a 进行位运算~,<<,>>等,其 大小都会变成 4 ,原因就是位运算是由 CPU 来完成,而数据在 CPU 中只能以整型的形式存在,这里发生了隐式整型提升。

左右移

位运算小随笔