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;  //正确

 

参考

posted @ 2015-12-30 17:51  ShuaiWang  阅读(1345)  评论(0编辑  收藏  举报