假设有这么一串数据
byte[]bytes={0x01,0x00};
它的高位是 0x01 ,低位是 0x00;
它的高低位是以权位来区别的:
Hex表示 0100 ;
16^3 | 16^2 | 16^1 | 16^0 |
4096 | 256 | 16 | 1 |
0 | 1 | 0 | 0 |
这样看起来可能会觉得不好看,用10进制代表16进制看
千 | 百 | 十 | 个 |
10^3 | 10^2 | 10^1 | 10^0 |
0 | 1 | 0 | 0 |
以十进制方式看 0100 就是 100 ,相比之下,千百的权位高于十个,所以千百是高位,十个是低位;
转到十六进制说就是 0x01 对于 0x00 是高位 ;
单从展示出来的hex字符串进行转换:从左往右(高低位数据转换)每一位与它对应的权位数值进行相乘,再进行总的相加,就得到转换后的数值了.
例如:0x1035
转成10进制数字 : 1*16^3+0*16^2+3*16^1+5*16^0=4149;
同样的 二进制、四进制、八进制等进制的算法都可以这样计算。