int x = 45; int key = 102; int encrypt = x ^ key; Console.WriteLine($"Зашифрованное число: {encrypt}"); int decrypt = encrypt ^ key; Console.WriteLine($"Расшифрованное число: {decrypt}"); при выполнении зашифрованное число: 75, откуда оно берётся? ведь если возвести 45 и 102 в степень неважно в каком порядке выходят разные результаты, даже не схожие с 75. Кто может объяснить?
TimeoutException, int x = 45; // Значение, которое надо зашифровать - в двоичной форме 101101 int key = 102; //Пусть это будет ключ - в двоичной форме 1100110 int encrypt = x ^ key; //Результатом будет число 1001011 или 75 Console.WriteLine($"Зашифрованное число: {encrypt}") ; int decrypt = encrypt ^ key; // Результатом будет исходное число 45 Console.WriteLine($"Расшифрованное число: {decrypt}"); C# int x = 45; // Значение, которое надо зашифровать - в двоичной форме 101101 int key = 102; //Пусть это будет ключ - в двоичной форме 1100110 int encrypt = x ^ key; //Результатом будет число 1001011 или 75 Console.WriteLine($"Зашифрованное число: {encrypt}") ; int decrypt = encrypt ^ key; // Результатом будет исходное число 45 Console.WriteLine($"Расшифрованное число: {decrypt}");
Код проходится по двоичным версиям чисел 45 и 102 через оператор XOR (исключающее или) Числа x и key в двоичном виде: 45 - 101101 102 - 1100110 Применяем оператор XOR Получаем 1001011 1001011 в десятичном виде это 75 https://docs.microsoft.com/ru-ru/do...hift-operators#logical-exclusive-or-operator-