笔者在做Android串口开发的时候,与串口设备间的通信经常内容都是16进制的
发送命令的时候需要先把命令转成16进制的ASCII字符串。
接收到设备的反馈时需要把16进制的ASCII字符串转成对应的明文。
比如我们要发送的明文为ABCDEF,需要先转成对应的16进制ASCII码字符串414243444546
比如我们收到的反馈为16进制的ASCII码字符串313233343536,需要转成对应的明文123456
16进制ASCII码和单个字符char的互转
我们先来了解单个字符char和ASCII码的互转
1 | // hex转char |
ASCII码hex字符串转String明文
代码很简单,就是每两个字符表示的16进制ASCII码解析成一个明文字符
1 | public static String hex2Str(String hex) { |
String明文转ASCII码hex字符串
代码很简单,就是一个明文字符生成两个字符表示的16进制ASCII码
1 | public static String str2Hex(String str) { |
十进制ASCII码字符串和String明文互转
10进制的转换和16进制的类似,只有细微的差别,直接看代码
10进制ASCII转String
1 | public static String dec2Str(String ascii) { |
String转10进制ASCII
1 | public static String str2Dec(String str) { |
八进制ASCII码字符串和String明文互转
八进制ASCII码的转换也类似,主要要注意的地方是八进制的ASCII码占三位,而16进制和十进制表示法只占两位
8进制ASCII转String
1 | public static String oct2Str(String ascii) { |
String转8进制ASCII
1 | public static String str2Oct(String str) { |