有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

所以我的问题是,是否有一个对booleanbyte进行运算的二元一补运算符?是否应该为不同的类型重载?我只想反转一个布尔值,这应该不会太难

p.S.1long与~一起工作很顺利。 P.S.2我知道如何使用int,然后将其转换为boolean,但我认为应该有一个更快的实现


共 (1) 个答案

  1. # 1 楼答案

    在Java中使用boolean,并用!否定它