Java ~和之间有什么区别!操作人员

Java ~和之间有什么区别!操作人员,java,operators,Java,Operators,请让我知道~和之间的区别!java中的运算符 ~是求反运算符。它从真到假或从假到真否定位。仅用于整型数据类型(int、short、byte、char、long) !!翻转布尔值。这将适用于任何会产生逻辑值的情况。所以如果你的foo

请让我知道~和之间的区别!java中的运算符

~是求反运算符。它从真到假或从假到真否定位。仅用于整型数据类型(int、short、byte、char、long)

!!翻转布尔值。这将适用于任何会产生逻辑值的情况。所以如果你的foo<5,你就可以做到!(foo<5),结果将是相反的。

~
是:

一元逐位补码运算符“~”反转位模式;它可以应用于任何整数类型,使每个“0”都成为“1”,每个“1”都成为“0”。例如,一个字节包含8位;将此运算符应用于位模式为“00000000”的值会将其模式更改为“11111111”


是一个。它反转布尔值。

因此,如果你有foo<5,你可以这样做!(foo<5)结果将是相反的
我明白了:为了内存对齐的目的,不是把bool存储为字节吗?-1,这么说吧!翻转一点是相当误导的。请参阅tangens的答案,以获得更好的解释。-1说这个是错误的!稍微翻转一下,没有为Java指定内部表示。在C语言中,区分整数和布尔值不像Java那么小心!将0映射为1,将非零值映射为0。修复了,抱歉,我来自c世界。我建议您自己尝试一些示例。