2.将data中的【4,7】位置1,其他位不变。
data第四位到第七位置1则其形式为 1111 ——
置1需要进行“ | ”运算 则 data | (0Xf << 4)
3.思考如何交换两个数
任何一个数和0000 0000进行异或操作其值是不变的 a ^ 0 = a
任何一个数和自身进行异或操作结果总为0 a ^ a = 0
设有两个数 a 0000 1111
b 1010 0000
因为a ^ b = 1010 1111 = b ^ a
所以a ^ b = b ^ a
因为b ^ a = 1010 1111 再将其与a进行异或操作得a^(b^a)=1010 0000和b的值一样
所以a ^ (b ^ a) = a ^ a ^ b
设两个数为 num1 num2
num1 = num1 ^ num2
num2 = num2 ^ num1
结合可得 num2 = num2 ^ (num1 ^ num2)
由上面推理可得 num2 = num2 ^ num2 ^ num1
num2 = num1
此时已经把num1中的值赋到了num2中
num1 = num1 ^ num2
同理可得num1 = num1 ^ num2 , num2 = num1
则 num1 = (num1 ^ num2) ^ num1
num1 = num1 ^ num1 ^ num2
num1 = num2
即完成了对num1赋了num2的值,至此双方进行了值的交换。
4 已经解决