位运算小随笔

简介: 手撕位运算,不算细节,小记一手

按位或

|  :

任何数 | 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 中只能以整型的形式存在,这里发生了隐式整型提升。

左右移

458e9ec48257907c575407eb7219cad2c585f8.png

相关文章
|
5月前
|
NoSQL 容器 消息中间件
实战技巧位运算
实战技巧位运算
|
5月前
|
算法 Java
刷题专栏(二十三):4的幂
刷题专栏(二十三):4的幂
96 0
|
5月前
|
算法
刷题专栏(二十二):3 的幂
刷题专栏(二十二):3 的幂
119 0
|
5月前
|
算法
刷题专栏(十五):各位相加
刷题专栏(十五):各位相加
51 0
|
5月前
|
算法
刷题专栏(三):二进制求和
刷题专栏(三):二进制求和
66 0
|
5月前
|
算法
刷题专栏(十六):丑数
刷题专栏(十六):丑数
57 0
|
存储 C语言 C++
【C++知识点】位运算
【C++知识点】位运算
139 0
|
存储 算法 JavaScript
📖位运算在力扣算法问题的妙用
📖位运算在力扣算法问题的妙用
107 1
📖位运算在力扣算法问题的妙用
|
存储 机器学习/深度学习 算法
算法刷题第十四天:位运算--2
代码实现中,每枚举一位就将 n 右移一位,这样当前 n 的最低位就是我们要枚举的比特位。当 n 为 0 时即可结束循环。
93 0
算法刷题第十四天:位运算--2
|
算法 编译器 C语言
你是真的“C”——详细剖析操作符知识点【上篇】
详解C语言中操作符模块相关知识点
112 0
你是真的“C”——详细剖析操作符知识点【上篇】