Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布尔数的二进制一补运算符(或二进制求反)?_Java_C_Boolean - Fatal编程技术网

Java 布尔数的二进制一补运算符(或二进制求反)?

Java 布尔数的二进制一补运算符(或二进制求反)?,java,c,boolean,Java,C,Boolean,我会问一个很简单的问题,这让我很惊讶。 我想将一个简单的C代码移植到java,在这段代码中,它使用了int作为boolean。在代码内部,它将其反转了几次,如: c = !c; 因此,一开始我自然认为布尔值可以很好地工作。不过,反转不起作用(使用二进制1补码运算符~) 我也尝试过字节(毕竟我只需要一个布尔值),但奇怪的是,这段代码没有编译,表明错误类型不匹配: byte c = 0; c = ~c; //<= here is the error 字节c=0; c=~c// 在Java中

我会问一个很简单的问题,这让我很惊讶。 我想将一个简单的C代码移植到java,在这段代码中,它使用了
int
作为
boolean
。在代码内部,它将其反转了几次,如:

c = !c;
因此,一开始我自然认为布尔值可以很好地工作。不过,反转不起作用(使用二进制1补码运算符~)

我也尝试过
字节
(毕竟我只需要一个
布尔值
),但奇怪的是,这段代码没有编译,表明错误
类型不匹配

byte c = 0;
c = ~c; //<= here is the error
字节c=0;

c=~c// 在Java中使用
boolean
,并用
对其求反

Java拥有
逻辑not运算符太多。c是一个完全不同的东西,如果你使用c,你就是在使用c,否则就使用java定义的东西虽然讨论的是xor,但它通常适用于按位运算符:
long
不需要额外的强制转换,原因是
~
应用于
long
会产生
long
,当
~
应用于
字节时
会生成
int
@Brett-Okken,这也是一个有用的链接。