2013-06-29 5 views
2

Привет всем У меня есть цикл с ~ оператором никогда не нашел это раньше на какой-либо из кодаЧто такое оператор ~ для

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

     } 

что делает ~ делать?

я не нашел ничего подобного в интернете или где-нибудь, прежде чем поэтому, возможно, кто-то может помочь мне спасибо заранее

+0

В дополнении к посланным ответам: [Битовые и биты Операторы сдвига] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) и [Java® Язык Спецификация: 15.15.5.Оператор побитового дополнения ~] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.15.5) – informatik01

ответ

2

Это побитовое оператор, который будет применяться не ворота на каждый бит данных. Например, когда биты данных 101, то он станет 010.

2

~ для побитового инверсии - 0s стать 1s, 1s стать 0s.

2

Оператор ~ является побитовое NOT, он инвертирует биты в виде двоичного числа:

NOT 011100 
    = 100011 
2

От docs:

одноместной операции побитовое дополнение «~» инвертирует битовый шаблон; он может применяться к любому из интегральных типов, делая каждый «0» a «1» и каждый «1» a «0». Например, байт содержит 8 бит; применяя , этот оператор к значению, бит-шаблон которого «00000000», изменит на его шаблон на «11111111».

3

Из учебников Явы, http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html,

Унарный побитовое дополнение оператор "~" инвертирует битовый шаблон; он может применяться к любому из интегральных типов, делая каждый «0» a «1» и каждый «1» a «0». Например, байт содержит 8 бит; применяя этот оператор к значению, бит-бит которого «00000000» изменит его шаблон на «11111111».

1

Тильда (~) выполняет побитный комплимент численного значения.

1011 0011 = ~0100 1100 
Смежные вопросы