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!