c - C语言中带括号和不带括号的异或有什么区别
问题描述
我有一些代码,它通过 XOR 对 5 个第一个数字检查校验和,它应该等于第六个数字。但是,两者有什么区别
if (n0^n1^n2^n3^n4==n5) return true;
else return false;
和
if ((n0^n1^n2^n3^n4)==n5) return true;
else return false;
?
因为第一个有效,第二个无效。
解决方案
C 语法建立运算符优先级,==
其优先级高于^
. Son0^n1^n2^n3^n4==n5
等价于n0^n1^n2^n3^(n4==n5)
,与 不同(n0^n1^n2^n3^n4)==n5
。
推荐阅读
- .net - 如何将枚举定义转换为 JavaScript 对象(json)
- azure - 在应用服务环境中安装 ASP.NET CORE 3.0 扩展?
- php - 我需要日期数组中 PHP 中当前年份的最大日期
- awk - 比较同一文件中的多个列并打印差异
- javascript - 重新渲染后平面列表无法正确排序
- mongodb - Graphql 为 mongoose 聚合查询返回 null id
- android - 将图像从相机或图库上传到 FirebaseStorage
- python - GPS 周数翻转 (WNRO) 和 gpsd
- excel - Excel VBA中的顺序编号随机跳过订单
- jquery - Select2 显示不正确