java IO流读取2进制文件时 一个byte 显示是 -35 , 这个byte中的内容实际是16进制的 'DD'

16进制的'DD' 10进制是221 怎么将这个-35 转化为 221 , 类似这种转化 哪位大神可以提供下方法

-35是16进制的0xffffffdd
你的二进制文件byte实际上是char型,因此需要进行由char至int的类型提升,由于你这个byte的值为0Xdd(221),根据数据宽度扩展时符号位的扩展规则,它会被扩展为(int)0XFFFFFFDD(也就是-35),
如果想把-35转换为221,用以下方法:
System.out.println(-35&0xff);
就可以转换为你要的结果
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-27
对不起,上次的答案有问题,你用下面的这段代码试试,我这边是没有问题,可以将一个二进制文件里面的对应的打印出来了。
for (int i =0; i <32; i++) {
int w = bufb[i] & 0xFF;

System.out.println(Integer.toHexString(w));

}
相似回答