美文网首页
按位运算

按位运算

作者: 卖馍工程师 | 来源:发表于2020-06-16 15:54 被阅读0次

按位与&

如果(x)i == 1 并且(y)i == 1,那么(x & y)i = 1,否则(x & y)i = 0;按位同为1即为1 否则为0;

  • 按位与常用于两种应用:
  • 让某一位或某些位为0 :x & 0xFE
  • 取一个数中的一段: x & 0xFF

按位或 |

如果(x)i == 1 或 (y)i == 1,那么(x | y)i = 1,否则 (x | y)i = 0;按位有1则为1,否则为0

  • 按位或长用于两种应用
  • 使得一位或几个位为1: x | 0x01
  • 把两个数拼起来: 0x00ff | 0xff00

按位取反 ~

(~x)i = 1 - (x)i; 把1变成0,0变成1;

  • 想得到全部位为1的数: ~0;
  • 7的二进制是0111,x|7使得低3位为1,而x & ~7,就使得低3位为0

按位异或 ^

如果(x)i == (y)i,那么(x ^ y)i = 0,否则,(x ^ y)i = 1;按位相同为0,否则为1;

  • 如果x和y相等,那么x^y的结果为0;
  • 对一个变量用同一个值异或两次,等于什么也没做(原值),即 x ^ y ^ y = x.

左移<<

i << j

  • i中所有的位向左移动j个位置,右边填入0;
  • 所有小于int的类型,移位以int的方式来做,结果是int
  • x << 1 等价于 x *= 2
  • x << n 等价于 x *= 2^n

右移>>

i >> j

  • i中所有的位向右移动j个位置,左边填入0;
  • 所有小于int的类型,移位以int的方式来做,结果是int
  • 对于unsigned的类型,左边填入0
  • 对于signed的类型,左边填入原来的最高位(保持符号不变)
  • x >> 1 等价于 x /= 2
  • x >> n 等价于 x /= 2^n

相关文章

  • C语言:按位运算

    C语言:按位运算 C有这些按位运算的运算符& 按位的与| 按位的或~ 按位取反^ 按位的异或<< ...

  • 高级运算符

    1:位运算 1.1:按位取反运算符(~) 例子 1.2:按位与运算符 例子 1.3:按位或运算符 例子 1.4:按...

  • C、数据结构知识点

    1. 位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算...

  • 高级运算符(Advanced Operators)

    目录 [toc] 位运算符 1. 按位取反运算符~ 2. 按位与运算符& 3. 按位或运算符| 4. 按位异或运算...

  • 位运算

    运算符含义&按位与|按位或^按位异或~取反<<左位移>>右位移 按位与运算符(&)按位与运算将两个运算分量的对应位...

  • 按位运算

    菜鸟一枚,请大家不要见怪。 (1)按位与(&)运算: 参与运算的两个数据按二进制位进行与运算。 运算规则:0...

  • 按位运算

    与运算&对于一个正整数x来说,对x进行 x&(x-1)操作其实就是将x的二进制表示法中最后一个1换成0,以下代码可...

  • 按位运算

    按位与& 如果(x)i == 1 并且(y)i == 1,那么(x & y)i = 1,否则(x & y)i = ...

  • C高阶1:二进制操作

    1. 位运算 按位运算No.操作符功能1&按位与2|按位或3~按位取反4^按位异或 运算规则pqp & qp | ...

  • 基础运算符

    [使1. 按位与运算符(&](#1. 按位与运算符(&)[按位或运算符 | ](#2. 按位或运算符(|)) 1....

网友评论

      本文标题:按位运算

      本文链接:https://www.haomeiwen.com/subject/iqrrxktx.html