Javaで16進数をASCIIに変換する方法
JavaでHexをASCIIに、またはその逆に変換する方法を示すJavaの例を次に示します。 変換プロセスは、この式「Hex⇐⇒Decimal⇐⇒ASCII」に依存します。
-
ASCIIから16進数–文字列をchar配列に変換し、整数(10進数)にキャストしてからInteger.toHexStringをキャストして、16進数値に変換します。
-
16進数からASCIIへ– 16進数の値をペア形式で切り取り、基数16のinterger(decimal)Integer.parseInt(hex, 16)に変換して、charにキャストし直します。
例
public class StringToHex{ public String convertStringToHex(String str){ char[] chars = str.toCharArray(); StringBuffer hex = new StringBuffer(); for(int i = 0; i < chars.length; i++){ hex.append(Integer.toHexString((int)chars[i])); } return hex.toString(); } public String convertHexToString(String hex){ StringBuilder sb = new StringBuilder(); StringBuilder temp = new StringBuilder(); //49204c6f7665204a617661 split into two characters 49, 20, 4c... for( int i=0; i
出力
***** Convert ASCII to Hex ***** Original input : I Love Java! Hex : 49204c6f7665204a61766121 ***** Convert Hex to ASCII ***** Hex : 49204c6f7665204a61766121 Decimal : 7332761111181013274971189733 ASCII : I Love Java!