java二进制1补运算符(或二进制求反)用于布尔运算?
我会问一个相当简单的问题,这让我很惊讶。
我想把一个简单的C代码移植到java,在这段代码中,它使用了int
作为boolean
。在代码内部,它将其反转了几次,如:
c = !c;
所以一开始我自然认为boolean
会很好用。不过,这种转换不起作用(使用二元一补运算符~)
我也尝试过byte
(毕竟我只需要一个boolean
),但奇怪的是,这段代码没有编译,指示错误Type mismatch
:
byte c = 0;
c = ~c; //<= here is the error
eclipse建议的解决方案是c = (byte) ~c;
(转换为byte
)
所以我的问题是,是否有一个对boolean
和byte
进行运算的二元一补运算符?是否应该为不同的类型重载?我只想反转一个布尔值,这应该不会太难
p.S.1long
与~一起工作很顺利。
P.S.2我知道如何使用int
,然后将其转换为boolean
,但我认为应该有一个更快的实现
# 1 楼答案
在Java中使用
boolean
,并用!
否定它