objective-c - ^= 在 Objective-C 中是什么意思?
问题描述
我在一些旧项目中找到了这部分代码“^ =”,当我调用“status ^ = YES;”时,我看到了它是如何改变状态的。有人可以向我解释这是什么吗?
BOOL status = YES;
status ^= YES;
解决方案
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
。
推荐阅读
- timer - Flutter - 闪烁按钮
- ios - iOS CoreBluetooth 如何与读取响应和通知数据包不同?
- html - 在 HTML 表单输入中,如果数据正在“发送/提交”,为什么该方法称为 GET?
- iis-7 - 使用 IIS7 安装 Shibboleth SP 时出现 ISAPI 错误
- ionic2 - 如何在单个 ionic 项目中添加 ioniclinkedin 和 google plus 原生插件?
- android - Espresso 空闲资源永远不会因 scroll_behavior 而空闲
- javascript - 在元素列表之后获取 SyntaxError: missing ]
- node.js - 使用客户端证书进行 FeathersJS 身份验证
- spring-boot - 在 Zuul 过滤器中处理不同的 URL 模式
- vb.net - 从没有主题对话框窗口的代码中应用主题?