首页 > 解决方案 > ^= 在 Objective-C 中是什么意思?

问题描述

我在一些旧项目中找到了这部分代码“^ =”,当我调用“status ^ = YES;”时,我看到了它是如何改变状态的。有人可以向我解释这是什么吗?

BOOL status = YES; 
status ^= YES;

标签: objective-c

解决方案


https://en.wikipedia.org/wiki/Bitwise_operations_in_C

按位异或(异或)执行逻辑异或功能,相当于添加两个位并丢弃进位。只有当我们有两个零或两个一时,结果才为零。XOR 可用于在 1 和 0 之间切换位。因此i = i ^ 1,当在循环中使用时,它的值会在 1 和 0 之间切换。

status ^= YES一种在 1 和 0 之间切换的明智方式也是如此,也就是 YES 和 NO。凡人会说status = !status


推荐阅读