【问题标题】:What is the ~ operator for [duplicate][重复] 的 ~ 运算符是什么
【发布时间】:2013-06-27 05:24:50
【问题描述】:

大家好,我有一个带有 ~ 运算符的 for 循环 以前从未在任何代码上发现过这个

    for (int i = 0; i < bytes.length; i++) {
        mashed[i] = (byte) ~bytes[i];

        }

~有什么作用?

我在互联网上或之前在任何地方都没有找到类似的东西 所以也许有人可以帮助我提前谢谢

【问题讨论】:

标签: java operator-keyword main


【解决方案1】:

它是~ bitwise NOT的运算符

按位非“~”运算符将操作数中的每个位反转,即该运算符将所有 1 更改为 0,将所有 0 更改为 1。

All operators

了解内部运作方式:How does the bitwise complement (~) operator work?

【讨论】:

    【解决方案2】:

    它是bitwise complement operator

    例子:

    如果值为2(0000 0010),则按位补码为1111 1101

    【讨论】:

      【解决方案3】:

      来自 Java 的教程,http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

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

      【讨论】:

        【解决方案4】:

        它是位运算符,它不会对数据的每一位应用门。比如数据位是101,那么就变成010了。

        【讨论】:

          【解决方案5】:

          ~ 用于按位取反——0 变为 1,1 变为 0。

          【讨论】:

            【解决方案6】:

            ~ 运算符是按位的NOT,它将二进制数中的位反转:

            NOT 011100
              = 100011
            

            【讨论】:

              【解决方案7】:

              来自docs

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

              【讨论】:

                【解决方案8】:

                波浪号 (~) 对数值进行按位补码。

                1011 0011 = ~0100 1100
                

                【讨论】:

                  猜你喜欢
                  • 2013-12-02
                  • 2021-12-20
                  • 2011-08-25
                  • 2021-04-14
                  • 2020-05-22
                  • 2015-06-23
                  • 2011-07-21
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多