Valor absoluto Java
-
21-12-2019 - |
Pregunta
Estoy tratando de crear un directorio con el nombre del valor absoluto de la versión hexadecimal de una URL hash, utilizando el método HASH () incorporado de la clase de cadena.Ahora es posible que el hash () produzca un resultado negativo, y un nombre de directorio que comienza con un signo menos es algo difícil de manejar, por eso necesito el valor absoluto de esto.Sin embargo, no puedo averiguar cómo obtener el valor absoluto de la versión hexadecimal de la cadena de URL hashed.
Solución
¡El valor hexagonal nunca tiene un signo negativo!Es solo la representación hexadecimal del patrón de broca de los dos de los dos.
System.out.println(Integer.toHexString(-1)); // ffffffff
System.out.println(Integer.toHexString(Integer.MIN_VALUE)); // 80000000
Al igual que su madre, siempre le dijo: "Eres perfecto, tal como eres":
String dirname = Integer.toHexString(dirname.hashCode()); // never has minus sign
Otros consejos
Cobranelo a un largo, máscara los 32 bits superiores, luego convertirlo a una cadena.
long longHash = intHash;
long nonNegativeLongHash = longHash & ((1L << 32) - 1);
String unsignedHex = Long.toHexString(nonNegativeLongHash);