〜和!有什么区别?运营商?

Rak*_*yal 2 java operators

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

tan*_*ens 12

~是一个按位补码运算符:

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

!是一个逻辑补充运算符.它反转了布尔值.


Óla*_*age 5

〜是否定运算符.它否定了从true到false或false到true的位.仅用于整数数据类型(int,short,byte,char,long).

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

  • -1,这样说!翻转一点是相当误导的.请参阅tangens的回答以获得更好的解释. (4认同)
  • -1说错了!翻转一下,没有为Java指定内部表示.在C中,它不像Java那样小心区分整数和布尔值!将0映射到1,将非零值映射到0. (2认同)