gpt4 book ai didi

java - 字母的 XOR 十六进制 ASCII 值

转载 作者:行者123 更新时间:2023-12-02 06:19:57 24 4
gpt4 key购买 nike

我正在尝试完成一些作业,但完全被难住了。我需要执行的功能是,给定字符的十六进制值,将其与另一个十六进制值进行异或以验证已知的最终值。

举一个简单的例子(给我的那个),我知道'Bob'的ascii值将是[42,6F,62],而'Eve'将是[45,76,65]。我必须将“Bob”的值与 [07,16,17] 进行异或才能得到“Eve”。

我认为异或只是简单的模基加法,但只是使用微软计算器:(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 是按位异或,

42 = 1000010
45 = 1000101
<小时/>
 7 = 0000111

如果进行异或运算的两个位中有一个(且只有一个)1,则为 1。对于 Java,您可以使用 parseInt并传入基数,例如

public static void main(String[] args) {
int a = Integer.parseInt("42", 16);
int b = Integer.parseInt("45", 16);
System.out.println(Integer.toString(a ^ b, 16));
}

打印

7

关于java - 字母的 XOR 十六进制 ASCII 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21098449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com