绝对值java

时间:2014-04-12 03:48:21

标签: java hash absolute-value

我正在尝试使用String类的内置hash()方法创建一个目录,其中包含散列网址的十六进制版本的绝对值。现在hash()可能产生否定结果,并且以减号开头的目录名有点难以处理,这就是为什么我需要这个的绝对值。但是,我无法弄清楚如何获取散列url字符串的十六进制版本的绝对值。

2 个答案:

答案 0 :(得分:4)

十六进制值永远不会有负号!它只是该值的两个恭维位模式的十六进制表示。

System.out.println(Integer.toHexString(-1)); // ffffffff
System.out.println(Integer.toHexString(Integer.MIN_VALUE)); // 80000000

就像你的母亲总是告诉你的那样:"你完全按照自己的方式完善了#34;:

String dirname = Integer.toHexString(dirname.hashCode()); // never has minus sign

答案 1 :(得分:0)

将它强制转换为长,掩盖前32位,然后将其转换为字符串。

 long longHash = intHash;
 long nonNegativeLongHash = longHash & ((1L << 32) - 1);
 String unsignedHex = Long.toHexString(nonNegativeLongHash);