16进制数据 和 数据类型 的微妙关系
16进制的 ea 就是10进制的 -22(有符号数据,所以是-22,无符号是234)
数据:
ffdbffdbffdb8443dd02000015009aea3f0000000000000000000000000000000000000000000000000004f052001db1e10000005900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009a630e0f0e0f0e0f
第15位是 ea ,获取出来的数据强转为short ,得到的是 -22 ,但是 select case 里面的 case 只会进 case -22
那么不禁会问,这个第15位取出来的数据就是 ea,为什么case并不会进ea,原因是这个ea你要看是什么数据,如果是byte类型的,自然是有符号的负数,但如果是short 或者 int呢?高位补0后,自然就不是一个负数了,而是变成了正数 234
这里很明显能看出,系并不会把这个 ea 看作是一个byte型数据,需要你强制转换才能变成一个byte数据
强转后,一切就明了了,(byte) 0xea 才是 -22,直接的 0xea 其实是234