//位
//一个字节由8个二进制位组成。最左边的称为最高位,最右边的称为最低位
//每一个二进制位的值是0或1 (二进制数,只有0,1)
// 0000000( 0 ) - 11111111 (255 )
//位运算 针对位运算
// & 按位与 ,如果两个相应的位都为1,则该位结果为1,否则为0
// | 按位或 ,如果两个相应的位有一个为1,则该位结果为1,否则为0
// ^ 按位异或 ,如果两个相应的位不同,则该位结果为1,否则则为0
// ~ 取反 ,按位取反,0变成1,1变成0
// << 左移 ,将一个数的二进制位左移若干位,右侧补0
//每做左移一位都相当于 原来的 10进制数*2
// >> 右移 ,将一个数的二进制位右移若干位,超出最低位的被舍弃,左边最高位补0
//每做右移一位都相当于 原来的 10进制数除以2
// 0111 1010 //跟1做异或,就能够翻转某些位,如果想保留某些位,就跟0做异或
//按位非~ (按位取反)
//~01111111 = 10000000;
//左移 << 效果 乘以2的n次方
//00000001 << 1 00000010
//00000001 << 2 00000100
//右移 >> 效果 除以2的n次方
//10000000 >>1 01000000
//按位与 & (按位进行比较)值全1才都是1,其他为0
//00110000 & 00100000 =00100000
//按位异或 ^ 相同的为0,不同的为1
//00110000 & 00100000 =00010000
//按位或 | 有一个1,结果就是1
//00110000 | 00100000 =00110000
int Day1 = 1 << 0;
int Day2= 1 << 1;
int Day3 = 1 << 2;
int Day4 = 1 << 3;
int Day5 = 1 << 4;
int Day6 = 1 << 5;
int Day7= 1 << 6;
int day = Day2;
if (day& Day1) {
}