2016-04-17 1 views
0

Привет, ребята, я хочу знать, что этот символ «^» использовать для C#Что такое использование^= и то, что противоположно ему C#

для этого простого кода

public static Byte[] Xor = new Byte[] {0x77, 0xE8, 0x5E, 0xEC, 0xB7}; 
public static Byte[] data = new Byte[5]; 

static byte[] convertsomething(){ 
       Byte xors = 0; 

      for (int i = 0; i < 100; i++) 
      { 
       data[i] ^= Xor[xors]; 
       xors++; 
      } 
        return data; 
} 

для кода C# мы имеем переменные данные, как преобразовать их обратно в основные значения или что противоположно этим данным операции [i]^= Xor [xors];

+2

исключающее * * является 'напротив' из XOR. '(a xor b) xor b == a' – Rob

+0

Вы пытались найти« C#^operator »? – Tibrogargan

+0

да, я искал, но я не понимал, как он работает с двоичным –

ответ

3

В C# ^ operator является boolean logical operator, его целью является выполнение операции Exclusive or (XOR).

Для BOOL операндами, результат этой операции возвращает истину, только если один из двух операндов, правда, это означает, что:

true^true // Will return false 
false^false // Will return false 
true^false // Will return true 

Для интегральных операндами, он выполняет побитовое исключающее ИЛИ, примеры (в скобках могут отображаться двоичное представление):

1 (1)^1 (1) // Will return 0 (0) 
0 (0)^0 (0) // Will return 0 (0) 
1 (1)^0 (0) // Will return 1 (1) 
2 (10)^1 (1) // Will return 3 (11) 
15 (1111)^5 (101) // Will return 10 (1010) 

^= operator будет выполнять ту же самую операцию с левым и правым операндом, это означает, что х = у такой же, как х = х^у.

Таблица истинности для XOR может помочь понять:

 
A B Result
0 0 0
0 1 1
1 0 1
1 1 0
0

Его бинарный оператор, Бинарные^операторы предопределены для интегральных типов и BOOL

x ^= y оценивается как x = x^y

В основном то, что оператор^позволяет

// When one operand is true and the other is false, exclusive-OR 
// returns True. 
Console.WriteLine(true^false); 
// When both operands are false, exclusive-OR returns False. 
Console.WriteLine(false^false); 
// When both operands are true, exclusive-OR returns False. 
Console.WriteLine(true^true); 

Более подробная информация о операторы @https://msdn.microsoft.com/en-us/library/0zbsw2z6.aspx & https://msdn.microsoft.com/en-us/library/zkacc7k1.aspx