Comment puis-je convertir valeurs ASCII en valeurs hexadécimales et binaires (pas leur représentation en ASCII)? Par exemple, comment puis-je convertir la valeur décimale 26 en 0x1A?Comment faire pour convertir ASCII en Hex
Jusqu'à présent, je l'ai essayé de convertir en procédant comme suit (voir ci-dessous pour le code réel):
- valeur Conversion en octets
- Conversion chaque octet int
- Conversion chaque int en hexadécimal , via
String.toString(intValue, radix)
note: J'ai posé une question connexe sur writing hex values to a file.
Code Clojure:
(apply str
(for [byte (.getBytes value)]
(.replace (format "%2s" (Integer/toString (.intValue byte) 16)) " " "0")))))
code Java:
Byte[] bytes = "26".getBytes();
for (Byte data : bytes) {
System.out.print(String.format("%2s", Integer.toString(data.intValue(), 16)).replace(" ", "0"));
}
System.out.print("\n");
"printf" Il est intéressant de noter que Java n'a pas printf – luiscubal
@luiscubal: depuis 5 jdk il le fait, il est une méthode sur java.io.PrintStream. –
@Ari Non, le nombre 20 dezimal EST identique à 14 en hexadécimal ou 00010100 en binaire. Vous ne pouvez représenter textuellement ce nombre que dans une base arbitraire.Je ne suis toujours pas sûr de ce que votre objectif réel est - voulez-vous écrire la représentation de la chaîne dans le fichier ou le numéro dans un fichier binaire? Edit: Commentaire a disparu en écrivant ceci, oh wel. – Voo