关于C语言的位运算符

早期cpu架构在运行位运算时 略微领先 + - 运算 大幅领先 * / % 运算

'&' 运算符

总结 两个二进制中对应的位置都为 1 结果的对应二进制为 1

'&'运算符可以用到奇偶判断中(二进制最低位为1 则一定是奇数 为0 一定是偶数)

'|'运算符

总结 两个二进制中对应的位置只要有一个1 结果的对应二进制为 1

'|'运算符经常用于设置多个属性
列如 createwindow 中 经常用到

'^'运算符

总结 二进制对应位置不一样 结果对应位置的二进制位1 反之为0

'^'运算符可以用来判断两个数是否相等

两个数一样进行'^'运算 一样就会返回0

'~'运算符

总结 对应的位置 0变1 1变0 结果为负的了(这是计算机表示负数的一种方法 简单来说就是 数值最前面有个符号位 '~'运算符取负后 把数值前面的符号位改了 就变成负的了)

'~'运算符可以用与 求负数

也可以用来求int short long的最大最小值

'>>'运算符

把二进制向 左,右 移动 x位(x可以为任何数) (但是大于 数据类型大小*8 位没什么意义)


一般可以用来求二进制的幂(要是计算机自带3进制可以来求三进制的幂)

原文地址:https://www.cnblogs.com/catalytic/p/12891898.html