算法模版:位运算

简介: 算法模版:位运算

前言


唤我沈七就好啦。


&

按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0


|

按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1


^

按位异或
若参加运算的两个二进制位值相同则为0,否则为1


~

取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1


<<

左移
用来将一个数的各二进制位全部左移N位,右补0


>>

右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0


应用


1.判断奇偶


只需要判断二进制位末尾数字

如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,


if(n & 1 == 1){
    // n 是个奇数。}


2.交换两个数


x = x ^ y // (1)

y = x ^ y // (2)

x = x ^ y // (3)


3.求n的第k位数字:


n >> k & 1


4.返回n的最后一位1:


lowbit(n) = n & -n



相关文章
|
7月前
|
算法
算法思想总结:位运算
算法思想总结:位运算
|
7月前
|
机器学习/深度学习 存储 算法
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
|
算法
基础算法:位运算
基础算法:位运算
58 0
|
25天前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
38 1
|
4月前
|
算法
【算法】位运算算法——消失的两个数字(困难)
【算法】位运算算法——消失的两个数字(困难)
|
4月前
|
算法
【算法】位运算算法——只出现一次的数字Ⅱ
【算法】位运算算法——只出现一次的数字Ⅱ
|
4月前
|
算法
【算法】位运算算法——判断字符是否唯一
【算法】位运算算法——判断字符是否唯一
|
4月前
|
算法
【算法】位运算算法——两整数之和
【算法】位运算算法——两整数之和
|
4月前
|
算法
【算法】位运算算法——丢失的数字
【算法】位运算算法——丢失的数字
|
4月前
|
算法
算法】位运算——常见位运算基础操作总结
算法】位运算——常见位运算基础操作总结
算法】位运算——常见位运算基础操作总结