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;
}