十六进制数据累加效验遇到的坑

2020-11-27  本文已影响0人  a233f2076716

十六进制数据效验累加坑
我这里是使用初始值 int a = 0x2ac5 累加所有的数据段,其他数据段都为byte,
注意了int 累加 byte

//错误方式
        for (byte b:btByte) {
            a += b;
        }
//正确方式
        for (byte b:btByte) {
            a += (0xff & b);
        }


就这么点小细节 坑死我了
java中byte是8位 -128~127之间,而int是32bit,在转化前需将高24位置零,这样就不会出现补码导致的转换错误。

上一篇 下一篇

猜你喜欢

热点阅读