我试图String
通过添加一个新字符来测试哈希码的工作原理,然后反过来将它减去,但是当我进行计算时它没有给我正确的答案。
例如
int PRIME = 31;
//this will print 1687846330
System.out.println("mlkjihgfedcb".hashCode());
//this will print 783628775 which equals to "mlkjihgfedcba".hashCode();
System.out.println(("mlkjihgfedcb".hashCode() * PRIME + (int) 'a'));
//this will print 25278344 which doesn't equals to "mlkjihgfedcb".hashCode()
System.out.println(("mlkjihgfedcba".hashCode() - (int) 'a') / PRIME);
我想知道我是否在上面的最后一步做正确的数学?溢出对计算不重要吗?