1. 读取Hex文件
源文件【串:ASCII码(十六进制),数字:十六进制】:
43545449434450 ---- CTTICDP
00000000000011c4 ---- 00000000000011C4
04 ---- 4 AID NUM
41303030303030363332303130313036 ---- A000000632010106
7777 ---- 7777
10 ---- 0x10 KMC LEN
0bb1 ---- 0xbb1 LDATA
用流读文件后【ASCII码(十进制)】:
[67,84,84,73,67,68,80]
[0,0,0,0,0,0,17,196]
[4]-----------------对于1位的长度,因为是十进制,直接使用即可
[65,48,48,48,48,48,48,54,51,50,48,49,48,49,48,54,65]-----------------对于串,每一位强转char,然后组合起来。
[119,119]
[16]
[11,177]-----------对于2位的长度,需要做运算,第1位*256+第2位
最终解析后:
CTTICDP
00000000000011C4
4
A000000632010106
总结:
有些字段是直接放进去,不做任何转换;如 00000000000011C4
字符串是放其ASCII码;如 A000000632010106
数字是放其十六进制数。如 10
读取文件的流:
FileInputStream fis = new FileInputStream(file); int temp=0; int i = 1; while ((temp=fis.read()) != -1) { datas[i++] = temp; }
2.
int num = 361; ---- 二进制: 101101001
System.out.println(num>>8); ---- 右移8位: 1
System.out.println(((num>>8)) & 0xff ); ---- 与oxff 与: 1