算法模版:位运算

简介: 算法模版:位运算

前言


唤我沈七就好啦。


&

按位与
如果两个相应的二进制位都为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



相关文章
|
8月前
|
算法
算法思想总结:位运算
算法思想总结:位运算
|
8月前
|
机器学习/深度学习 存储 算法
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
|
2月前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
69 1
|
27天前
|
算法
【算法】位运算合集
/鸽巢原理优化//位图原理//bitMap&0001000只有非0或者0两个结果//说明当前bitMap位是0,那就添加进去}else{//1:把字符串转化为字符数组// //2:把字符扔到hash表中// //获取hash表中x的value值// }else{// }// }
|
5月前
|
算法
【算法】位运算算法——消失的两个数字(困难)
【算法】位运算算法——消失的两个数字(困难)
|
5月前
|
算法
【算法】位运算算法——只出现一次的数字Ⅱ
【算法】位运算算法——只出现一次的数字Ⅱ
|
5月前
|
算法
【算法】位运算算法——判断字符是否唯一
【算法】位运算算法——判断字符是否唯一
|
5月前
|
算法
【算法】位运算算法——两整数之和
【算法】位运算算法——两整数之和
|
5月前
|
算法
【算法】位运算算法——丢失的数字
【算法】位运算算法——丢失的数字
|
5月前
|
算法
算法】位运算——常见位运算基础操作总结
算法】位运算——常见位运算基础操作总结
109 0
算法】位运算——常见位运算基础操作总结

热门文章

最新文章