逻辑运算符
- 区别:逻辑运算符主要用于判断逻辑关系,结果只有真(非0)或假(0)。&&(逻辑与)表示两个条件都为真时结果才为真;||(逻辑或)表示两个条件只要有一个为真结果就为真;!(逻辑非)用于取反,真变假,假变真。
- 应用场景举例:
BOOL isAdult = YES;
BOOL hasLicense = NO;
if (isAdult && hasLicense) {
NSLog(@"可以合法开车");
}
if (isAdult || hasLicense) {
NSLog(@"有某种符合开车的条件");
}
if (!hasLicense) {
NSLog(@"没有驾照");
}
位运算符
- 区别:位运算符是对二进制位进行操作,按位对操作数的每一位进行运算,结果取决于操作数对应位的值。&(按位与)对应位都为1时结果位为1,否则为0;|(按位或)对应位只要有一个为1结果位就为1;~(按位取反)将每一位0变1,1变0;^(按位异或)对应位不同时结果位为1,相同时为0。
- 应用场景举例:
// 例如在图像处理中,可能会用到位运算来调整颜色值
unsigned char red = 0b10101010;
unsigned char green = 0b01010101;
unsigned char newRed = red & ~green;
NSLog(@"新的红色值:%d", newRed);