iOS位运算

2018-12-29  本文已影响0人  frola_

位运算符
使用的运算符包括下面:

1、<<

1<<1 指的是 0001 << 1 左移1位 0010 值修改为2

2、| 按位或

1000 | 0001 做| 运算 得出 1001 如果有一位为1则结果位为1

3、&按位与

1001 & 1000 做&运算 得出 1000 如果两位都为1 则对应的结果位为1

含义 运算符 例子
左移运算符 << 0011 -> 0110
右移运算符 >> 0110 -> 0011
或运算符 1000 | 0001 =1001
与运算符 & 1001 & 1000 = 1000

如果a * b转化为位运算

  • 如果b = 2^N 则 转化为 a << N
  • 如果b != 2^N 则 转化步骤为
    (1) b = x * 2^N
    (2)转化为 a * x << N

在枚举中使用位运算

typedef NS_OPTIONS(NSUInteger, TestBitOperation) {
    BitOperaTionOne     = 1 << 0, //0001 = 1
    BitOperaTionTwo     = 1 << 1, //0010 = 2
    BitOperaTionThree   = 1 << 2, //0100 = 4
    BitOperaTionFour    = 1 << 3  //1000 = 8
};
    NSUInteger temp = 2;
        switch (temp) {
            case BitOperaTionOne:
                NSLog(@"is One");
                break;
            case BitOperaTionTwo:
                NSLog(@"isTwo");
                break;
            case BitOperaTionThree:
                NSLog(@"is Three");
                break;
            case BitOperaTionFour:
                NSLog(@"is Four");
                break;
            default:
                break;
        }
上一篇下一篇

猜你喜欢

热点阅读