如何理解位运算

简介: 位运算基础

位运算:

位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。基本的位运算共 6种,分别为按位与、按位或、按位异或、按位取反、左移和右移。

与,或,异或

运算 运算符 运算逻辑
与 & 只有两个对应位都为 1时才为 1
或 | 只要两个对应位中有一个 1时就为 1
异或 ^ 只有两个对应位不同时才为 1
tip:异或运算的逆运算是他本身 e.g. a^b^b=a;

取反

取反是对一个数 进行的位运算,即单目运算.它是将数的二进制补码中的0和1取反,符号为~.

补码

在二进制表示下,正数和 的补码为其本身,负数的补码是将其对应正数按位取反后加一。

int lowbit(int i){

    return i&(-i);

}

左移和右移

num << i 表示将 num 的二进制表示向左移动 i 位所得的值。

num >> i 表示将 num 的二进制表示向右移动 i 位所得的值。

运算优先级

位运算的优先级低于算术运算符(除了取反),而按位与、按位或及异或低于比较运算符,所以使用时需多加注意,在必要时添加括号。

相关文章
|
2月前
|
存储 算法 搜索推荐
C语言第二十七练 异或的运算规律
C语言第二十七练 异或的运算规律
28 0
|
9月前
|
算法 Java API
【算法】位运算常用算法以及知识点
【算法】位运算常用算法以及知识点
60 0
|
7月前
|
存储 算法 C语言
C语言数组结合位运算实战-位移与查表
C语言数组结合位运算实战-位移与查表
59 0
|
7月前
|
程序员 数据安全/隐私保护 测试技术
深入理解按位操作符:位运算的魅力
尽管按位操作符在日常编程中并不经常使用,但它们是强大的工具,可以用于许多不同的情况。通过深入理解这些操作符的工作原理和实际应用,程序员可以更好地利用它们来解决问题,提高代码的效率和可读性。
165 3
|
8月前
|
算法 Java 编译器
第 14 天_位运算【算法入门】
第 14 天_位运算【算法入门】
80 0
|
9月前
|
算法
《零基础学算法》(第一讲)位运算的奇技淫巧
《零基础学算法》(第一讲)位运算的奇技淫巧
109 0
|
10月前
|
存储 C语言 C++
【C++知识点】位运算
【C++知识点】位运算
96 0
|
11月前
|
编解码 算法
关于位运算的巧妙性:小乖,你真的明白吗?
关于位运算的巧妙性:小乖,你真的明白吗?
算法提炼-位运算(3)
算法提炼-位运算(3)

热门文章

最新文章