English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В операторах битовом языка программирования Java есть оператор, называемый "исключающее ИЛИ" (XOR), который обозначается символом (^). Его правила выполнения: если биты операндов одинаковы, результат равен 0, если различны, результат равен 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, который в десятичном виде равен 13.
Используя это правило, мы можем灵活 использовать его в некоторых алгоритмах. Например, предположим, что у нас есть 2K+1 чисел, из которых 2k чисел повторяются, и нам нужно найти то, что не повторяется, например: 2, 3, 4, 4, 3, 5, 6, 6, 5. Мы можем использовать оператор XOR так:
public class 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("Число,出现的次数是一次: " + v); } }
Результат: число,出现的次数是一次的是2.
Мы используем правила оператора XOR, чтобы понять, что число, которое исключает с нулем, все еще является само собой, и что число, исключающее само себя, равно нулю.
Способ расчета: v=2^3^4^4^3^5^6^6^5;
На основе правила обмена и вышеуказанных правил
Можем вывести число,出现的次数为一次(необходимо выполнить предварительное условие 2k раз)
Обобщение
Вот полный анализ кода о проблеме XOR в Java, который я предоставил. Надеюсь, это поможет вам. Те, кто интересуется, могут продолжить читать другие связанные темы на этом сайте. Если у вас есть предложения, пожалуйста, оставьте комментарий. Спасибо за поддержку этого сайта!
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета в добровольном порядке и загружен самостоятельно. Этот сайт не имеет права собственности на него, не производил ручную редактуру и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @), чтобы сообщить о нарушении, и предоставьте соответствующие доказательства. В случае подтверждения нарушения, этот сайт немедленно удалят涉嫌侵权的内容。