位运算
左移:<< 一个数左移几答案等于该数连续乘以几个2 eg:10<<2 就等于40
右移:>>一个数左移几答案等于该数连续除以几个2 eg:10>>1 就等于5
按位与:& 二进制位上相同位数字,同时为1,结果为1,一方为0,结果为0
可用作奇偶判断的优化
按位或:| 二进制位上相同位数字,有一方为1,结果为1,反之为0
按位异或:^ 二进制位上相同位数字,相同为0,不同为1
取反:~ 不用关心符号位,全部按位取反 1变0 ,0变1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{//左移 右移
printf("%d\n", 10 << 2);//40
printf("%d\n",10>>1);//5
//按位与 样例:
printf("%d\n",10&5);//0
//按位或
printf("%d\n",10|5);//15
//按位异或
printf("%d\n",11^5);//14
//取反
printf("%d\n",~10);//-11
//判断一个数的奇偶性:
int num;
scanf("%d",&num);
if ((num & 1) == 0)//小括号是提升优先级的
printf("%d是偶数", num);
else
printf("%d是奇数", num);
return 0;
}