java byte中存大于0x7E的十六进制数

在做一个Android app和arm板子交互的程序中,遇到一个问题,Java byte中无法直接存储大于0x7E的十六进制,但是C语言却可以。

出现这个状况的原因是:Java中是byte存储的是有符号数,且没有提供无符号的byte类型,因此在其表示范围为-128-127之间。

处理方法:对于大于0x7E数,我们使用内联转换(inline conversion)进行处理后存入,如下所示。

private   byte test_01 = (byte)0x7E;  //正确
private   byte test_02 = (byte)0x7E;  //正确
private   byte test_03 = 0x80;        //错误
private   byte test_04 = (byte)0x80;  //正确

参考

原文地址:https://www.cnblogs.com/shuaiwang/p/5089622.html