tit*_*geo 1 java bit-manipulation
int equal = 0;
for (int i = 0; i < a.length(); i++) {
equal |= a.charAt(i) ^ b.charAt(i);
}
return equal == 0;
Run Code Online (Sandbox Code Playgroud)
我理解管道和XOR运算符但是在|=做什么?
它类似于+ =.见这里的表格
|= bitwise inclusive OR and assignment operator C |= 2 is same as C = C | 2
Run Code Online (Sandbox Code Playgroud)
所以它相当于将代码编写为:
equal = equal | a.charAt(i) ^ b.charAt(i)
Run Code Online (Sandbox Code Playgroud)
另外正如luk2302正确指出的那样,那里(按位异或)^ 优先于(按位包含OR),|所以你可以把它包含在括号内,如下所示:
equal = equal | (a.charAt(i) ^ b.charAt(i))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |