Contents

位运算符

Contents

位运算符

  • 位运算符主要用数值类型进行计算的
  • 将数值转换为2进制 再进行位运算
  • 如果一个数的位数和另一个数不一样 则补0
//对位计算    &有0则0  |有1则1   异或^相同为0 不同为1
int a = 1; //001
int b = 5; //101
int c = a & b;//结果:001   1

//补0
a = 3; //  011
b = 19;//10011
c = a & b;//结果00011  3

位取反

int a = 5;//0101
int b = ~a; //b=-6
//完整的int 2进制 第一位是符号位
//0000 0000 0000 0000 0000 0000 0000 0101
//取反后
//1111 1111 1111 1111 1111 1111 1111 1010

坐移« 和 右移»

  • 让一个2进制数进行左移和右移
  • 左移几位 右侧增加几个0
  • 右移几位 右侧去掉几个数
int a = 5;//101
int b = a << 5; //10100000   160
int b = 4;//100
int c = b >>2; //001   1