位运算

真假判断:不是0就是真
三目运算:a>10?printf(“大于10 ”):printf(“小于10 ”);printf()有返回值   ':'两边须有返回值
 
进制定义八进制 int num=012;print(“%o ”,num); 占位符o 0x
int a=5;四个字节,每个字节有8位;
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00010001
00000000 00000000 00000000 00010100
 
 
位运算:
 
1. & 与
2. | 或
3. ^ 异或(满足交换律)
4. ~ 非
5. >> 右移(补零)
6. << 左移
 
应用实例:
 
a^a=0,a^0=a;
a<<b  == a*2b次方
9>>2 除四取整
 
用位异或运算进行两数交换
 
int a = 2, b = 3;
我们去掉多余的 0 仅用一个字节表示数字

内存中 a = 00000010, b = 00000011;  

a=a^b;
a = 00000001;
 
b=a^b;
b = 00000010;
 
a=a^b;
a = 00000011;
两数字交换完毕。
 
位运算判断奇偶数

奇数 与 1,得1, 偶数 与 1 得 0.

int a = 5, b=6;

    printf("%d ",a&b);

    if(a&1){

        printf("jishu");

    }else{

        printf("oushu ");

    }

原文地址:https://www.cnblogs.com/miaocunfa/p/4330916.html