我是Java的新手,我想学习如何编码,但我坚持这个问题:
返回的值是多少?
int s = 2;
int w = "QCR".hashCode() % 3000;
int k = "KHF".hashCode() % 3000;
for (int y = 0; y <= k; y++)
s = (s ^ y) % w;
return s;
有人可以帮助我吗?如果你有答案,可以解释一下吗?谢谢。
答案 0 :(得分:0)
答案是1955年,see on ideone。 如果您在运行此代码时遇到问题,请尝试使用ideone等在线编辑器。
对正在发生的事情的一些解释:
.hashCode()
是bultin方法,用于计算给定对象的hash值(字符串&#34; QCR&#34;在此示例中)。
x % 3000
计算x modulo 3000
a ^ b
这是xor b,它是bitwise operation。
BTW,很难说这个代码只是通过查看它会输出什么,因为哈希函数是非常随机的(并且没有人记住字符串&#34; QCR&#34;)的哈希值。 如果您正在尝试学习编程测试并且经常使用代码(但是您自己)。如果您在运行或编译时遇到问题,请在此处询问,但请尽量寻找答案。