【问题标题】:What is the difference between ~ and ! operator?~ 和 ! 和有什么不一样操作员?
【发布时间】:2009-11-07 12:13:39
【问题描述】:

请告诉我~和!的区别java中的运算符。

【问题讨论】:

  • 我建议你自己尝试一些例子。

标签: java operators


【解决方案1】:

~bitwise complement operator

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

!logical complement operator。它反转布尔值。

【讨论】:

    【解决方案2】:

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

    !翻转布尔值。这将适用于任何会产生逻辑值的东西。所以如果你有 foo

    【讨论】:

    • So if you have foo < 5 you can do !(foo < 5) and the result will be the opposite 我明白了:D
    • 一个 bool 不是为了内存对齐而存储为字节吗?
    • -1,这么说!翻转一位相当具有误导性。请参阅 tangens 的答案以获得更好的解释。
    • -1 说错了!翻转了一下,内部表示没有为 Java 指定。在 C 中,它不像 Java 那样仔细区分整数和布尔值,!将 0 映射到 1,将非零值映射到 0。
    • 已修复,抱歉,我来自一个更像 c 的世界。
    猜你喜欢
    • 2021-07-19
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2022-01-15
    • 2021-11-29
    • 2011-08-16
    相关资源
    最近更新 更多