Загрузка...

Как работает этот код?

Тема в разделе C# создана пользователем az309924 25 авг 2022. 237 просмотров

  1. az309924
    az309924 Автор темы 25 авг 2022 чилю, https://lolz.live/threads/4385363 133 15 окт 2021

    int x = 45;
    int key = 102;

    int encrypt = x ^ key;
    Console.WriteLine($"Зашифрованное число: {encrypt}");

    int decrypt = encrypt ^ key;
    Console.WriteLine($"Расшифрованное число: {decrypt}");

    при выполнении зашифрованное число: 75, откуда оно берётся? ведь если возвести 45 и 102 в степень неважно в каком порядке выходят разные результаты, даже не схожие с 75. Кто может объяснить?
     
  2. zxcursed
    zxcursed 25 авг 2022 593 9 фев 2019
    ^ это же ИЛИ
     
    25 авг 2022 Изменено
    1. az309924 Автор темы
      zxcursed, я хз как это работает, абсолютно
  3. TimeoutException
    az309924, Кент, а ты читаешь объяснение к коду?
     
    1. az309924 Автор темы
      TimeoutException,
      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}");
    2. az309924 Автор темы
      TimeoutException, мне от этих примечаний в коде не стало проще
  4. DarKRs
    DarKRs 25 авг 2022 Ура, у меня наконец есть статус 1232 15 июл 2022
    Код проходится по двоичным версиям чисел 45 и 102 через оператор XOR (исключающее или)
    Числа x и key в двоичном виде:
    45 - 101101
    102 - 1100110

    Применяем оператор XOR
    [IMG]
    Получаем 1001011
    1001011 в десятичном виде это 75
    [IMG]

    https://docs.microsoft.com/ru-ru/do...hift-operators#logical-exclusive-or-operator-
     
    1. az309924 Автор темы
      DarKRs, спасибо что пояснил, а то я голову ломал
Загрузка...
Top