Существует оператор, называемый эксклюзивным или в операторе бита Java, который представлен символом (^). Правила работы: среди битов двух операндов, результат составляет 0, если результат составляет 1, если биты двух операндов одинаковы, и результат составляет 1, если результат отличается. Давайте посмотрим пример ниже:
Public Class Testxor {public static void main (string [] args) {int i = 15, j = 2; system.out.println ("i ^ j =" + (i ^ j));}}Результат операции: i^j = 13.
Анализ вышеуказанной программы, преобразование I = 15 в двоичный файл составляет 1111, преобразование j = 2 в двоичный файл 0010, а получение 1101 в соответствии с правилами операции XOR, а преобразование ее в десятичное значение составляет 13.
Используя это правило, мы можем гибко применить определенные алгоритмы. Например, если есть числа 2k+1, и 2K из них одинаковы, вам нужно найти различные числа, такие как: 2, 3, 4, 4, 3, 5, 6, 6, 5. Мы можем использовать оператор XOR для написания таким образом:
открытый класс Testxor {public static void main (string [] args) {int [] array = {2,3,4,4,3,5,6,6,5}; int v = 0; for (int i = 0; i <array.length; i ++) {v ^= array [i];} system.out.println (number at anting at e Anstrray);Результатом является: число, которое появляется только один раз, составляет 2.
Мы просто используем правила оператора XOR, чтобы получить принцип, согласно которому число и 0 являются XOR или SIVE, а число и себя - XOR или SILE.
Приведенный выше метод расчета: v = 2^3^4^4^3^5^6^6^5;
В соответствии с законом обмена и вышеуказанными правилами
Число, которое появляется только один раз, может быть выведено (2K из тех же предпосылок должны быть выполнены)
Суммировать
Выше приведено все содержание этой статьи об анализе кода проблемы XOR в Java, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!