A[i] ^= (1<<(s[j]-'A'));可以解释一下他做了哪些变换吗?O(∩_∩)O谢谢
2 回答
已采纳
MinRam
TA贡献87条经验 获得超24个赞
首先按优先级拆分变换如下: 1. s[j]-'A' ,C++中进行ASCII码相减。得到一个数。(个人认为s[j]应该为某大写字母) 如:s[j]为'B',则所得的值为1 2. 1<<( 结果 ) , 根据相减的结果进行左移位。 如结果为1,则得到二进制为0000 0000,0000 0000,000 0000,0000 0010 (32位环境下) 3. A[i] ^= 结果 , 对结果进行取反。 如果结果为2步骤时候,则得到二进制位1111 1111,1111 1111,1111 1111,1111 1101 再根据A[i]的类型进行读取该串二进制表达的值。
- 2 回答
- 0 关注
- 1395 浏览
添加回答
举报
0/150
提交
取消