1.题目
学习使用按位与 &。
及全一为一
#include <stdio.h>
void main(){
int a=0xFF,b=0x00,c=0xF0;
// 0x 开头为十六进制 转 二进制为
// 0xFF 1111 1111
// 0x00 0000 0000
// 0xF0 1111 0000
printf("%d\n",a&b);
// 0 0000 0000
printf("%d\n",a&c);
// 240 1111 0000
printf("%d\n",b&c);
// 0 0000 0000
}
运行结果
2.题目
学习使用按位或 |。
及全零为零
#include <stdio.h>
void main()
{
int a=0xFF,b=0x00,c=0xF0;
// 0x 开头为十六进制 转 二进制为
// 0xFF 1111 1111
// 0x00 0000 0000
// 0xF0 1111 0000
printf("%d\n",a|b);
// 255 1111 1111
printf("%d\n",a|c);
// 255 1111 1111
printf("%d\n",b|c);
// 240 1111 0000
}
运行结果
3.题目
学习使用按位异或 ^。
及全零为零 全一为零
其他为一
#include <stdio.h>
void main(){
int a=0xFF,b=0x00,c=0xF0;
// 0x 开头为十六进制 转 二进制为
// 0xFF 1111 1111
// 0x00 0000 0000
// 0xF0 1111 0000
printf("%d\n",a^b);
// 255 1111 0000
printf("%d\n",a^c);
// 15 0000 1111
printf("%d\n",b^c);
// 240 1111 0000
}
运行结果
4.题目
自定义一个整数移位,取一个整数 a 从右端开始的 4~7 位。
移位补零
#include <stdio.h>
void main(){
int a=0xFF,i;
// 0xFF 1111 1111
for(i=4;i<=7;i++){
printf("%x\n",a>>i);
}
// 0x0f 0000 1111
// 0x07 0000 0111
// 0x03 0000 0011
// 0x01 0000 0001
}
运行结果