C语言计算多变量异或的for循环运行异常,问题出在哪里?
问题排查
你的代码存在两个核心错误:
- for循环判断条件写反:初始值
i=2,你写的条件i > 30从一开始就不成立,循环完全不会执行,最终计算结果完全不符合预期。正确的判断条件应该是i <= 30,保证从2到30的所有偶数下标都能被遍历到。 - 循环内的异或逻辑冗余,不需要定义两个变量来回赋值,直接用单个变量累积异或即可,你的写法即使修改了循环条件也能运行,但写法累赘容易出错。
正确实现代码
unsigned int check_0 = P0; for (int i = 2; i <= 30; i += 2) { check_0 ^= en[i]; }
内容的提问来源于stack exchange,提问作者UpDownStrange
相关产品推荐
相关产品推荐

