按位异或运算的规则是:对于两个对应的二进制位,如果两个位不同(一个为 0,另一个为 1),则结果为 1;如果两个位相同(都为 0 或都为 1),则结果为 0。
例如:
5 的二进制表示为 0101。
3 的二进制表示为 0011。
5 ^ 3 的结果为 0110,即 6。
题目描述:
给你两个整数,n 和 start 。
数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。
请返回 nums 中所有元素按位异或(XOR)后得到的结果。
代码模板:`int xorOperation(int n, int start) {
}`
思路:看到题目首先了解n和nums代表什么,同时要明白最后要返回的是一个数。
n为数组长度,要求出按上述规则的数组结果。
先定义一个数承接最终结果 int ans;
利用for循环得出数组,最后按照异或操作对象。
重点是对数组元素的操作,
要先用malloc开辟一个空间当数组,其它一样;
简单的是用运算符不用数组直接
ans^=(start + 2*i);
然后return即可;