C++与Java代码转换

问题描述:

我在C++C++与Java代码转换

r.bits[k] &= 0xFF^msk; 

所以在Java中

r.bits[k] = r.bits[k] & 0xFF, 

,但什么是插入符号符号的含义是什么? msk也将包含十六进制值。 我知道插入符号是C++中的一种指针,但不知道它在这里做了什么。 请解释。

+1

此语句可以逐字复制到Java。正如silverback解释'^'与指针无关。 – musiKk 2011-05-17 12:52:13

的^符号表示在C,C++中的按位XOR运算符。 List of operators in C, C++

同样的操作是可用于Java和。 XOR Operator in Java

C++中的插入符号表示XOR逻辑运算。含义的代码0xFF^msk;是你把位MSK和反转他们(零至者,反之亦然)

+0

我认为你的意思是按位,而不是逻辑 – sehe 2011-05-17 12:51:50

+0

它是一个按位运算符执行逻辑异或操作 – Euqil 2011-05-17 13:08:04

插入符号是指按位异或

插入符号不意味着一种指针在C++(虽然MSVC++具有扩展的C++/CLI使用该符号)

^是按位异或。

例如:

1^1 = 0 
2^1 = 3 
0^1 = 1 

如果使用C++/CLI那么它也是一种reference(手柄)。

克拉符号XOR运算看到here