什么是〜运算符

时间:2013-06-29 15:11:54

标签: java operator-keyword main

嗨,我有一个〜运算符循环 从来没有在任何代码上找到这个

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

        }

做什么?

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

8 个答案:

答案 0 :(得分:5)

它是~ bitwise NOT

的运算符
  

按位NOT“〜”运算符反转操作数中的每个位,即此运算符将所有1更改为零,将所有0更改为1。

All operators

了解内部工作原理:How does the bitwise complement (~) operator work?

答案 1 :(得分:3)

这是bitwise complement operator

示例:

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

答案 2 :(得分:3)

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

  

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

答案 3 :(得分:2)

是按位运算符,它不会对数据的每一位应用门。例如,当数据位为101时,它将变为010。

答案 4 :(得分:2)

~用于按位反转 - 0变为1,1变为0。

答案 5 :(得分:2)

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

NOT 011100
  = 100011

答案 6 :(得分:2)

来自docs

  

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

答案 7 :(得分:1)

Tilde(〜)对数值进行按位补码。

1011 0011 = ~0100 1100