Я пытаюсь выполнить некоторые домашние задания и полностью в тупике. Функция, которую мне нужно выполнить, определяется шестнадцатеричным значением символа, xor с другим шестнадцатеричным значением, чтобы проверить известное конечное значение.XOR hex ascii значения букв
Давая простой пример (тот, который мне дал), я знаю, что значение ascii «Боба» будет [42,6F, 62], а «Eve» будет [45,76,65]. У меня есть значение XOR 'Bob' с [07,16,17], чтобы получить «Eve».
Я думал, что xor просто добавляет модульную базу, но просто использует калькулятор Microsoft: (42 + 45) mod 16 = 3, но 42 XOR 45 = 7. Я не понимаю, как иначе будет выполняться функция XOR. Может кто-нибудь объяснить?
Заранее спасибо
Я попытался
float l = (6F)^(16);
System.out.println(l);
и получил это исключение:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - bad operand types for binary operator '^'
first type: float
second type: double
at p2p_example.P2P_Example.main(P2P_Example.java:40)
Java Result: 1
Так что лучше преобразовать в двоичный код для выполнения XOR. В основном я использую Java, как использовать java для реализации двоичной (или шестнадцатеричной) xor-функции? Насколько я знаю, система номеров Java работает только с базой 10 – YazanLpizra
XOR - это то же самое, независимо от того, что такое база. Числа имеют одинаковое значение независимо от того, как они представлены. Нет такой функции, как «двоичная xor» функция. –
@yazan Я отредактировал свой ответ, чтобы включить Java-код; если бы вы пометили свой вопрос Java, во-первых, я бы разместил это раньше. –