按位运算

//位
    //一个字节由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) {
    
    }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值