说明:
1. signed char为8bit=1Byte,bit[0]为符号位,0表示结果是正数,为1表示结果是负数。
2. 原码、反码、补码之间的变换都和符号位无关,只和后7位有关
3. 正数的三种编码方式的结果都相同:
[+1] = [00000001]原 = [00000001]反 = [00000001]补
角度数据采用8位有符号数(signed char),单位:度(°),范围: -90°~ 90°
//角度20
//[+20] = [0001 0100]原 = [0001 0100]反 = [0001 0100]补 =0x14
//角度-40
//[-40] = [1010 1000]原 = [1101 0111]反 = [1101 1000]补 =0xd8
ox14(signed char)是补码的16进制体现,要转化为原码后,再转为10进制。即从补码倒推原码
//signed char 转10进制,0x14作为参数传入,nun的类型为int,值为20
private int signChar2DecNum(int num) {
//16进制 -> 2进制 : 8位的补码
char[] buMa = get8BitBuMa(num); //20 -> "0001 0100"
//printCharArr("bu Ma", buMa);
if (null == buMa || buMa.length < 1) return 0;
//是否为正数
boolean positiveNum = buMa[0] == '0'