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

16进制的'DD'10进制是221怎么将这个-35转化为221,类似这种转化哪位大神可以提供下方法... 16进制的'DD' 10进制是221 怎么将这个-35 转化为 221 , 类似这种转化 哪位大神可以提供下方法 展开
 我来答
让猫飞一会儿
2015-01-26 · TA获得超过1119个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:277万
展开全部
-35是16进制的0xffffffdd
你的二进制文件byte实际上是char型,因此需要进行由char至int的类型提升,由于你这个byte的值为0Xdd(221),根据数据宽度扩展时符号位的扩展规则,它会被扩展为(int)0XFFFFFFDD(也就是-35),
如果想把-35转换为221,用以下方法:
System.out.println(-35&0xff);
就可以转换为你要的结果
帐号已注销
2015-01-27 · TA获得超过1562个赞
知道小有建树答主
回答量:674
采纳率:0%
帮助的人:816万
展开全部
对不起,上次的答案有问题,你用下面的这段代码试试,我这边是没有问题,可以将一个二进制文件里面的对应的打印出来了。
for (int i =0; i <32; i++) {
int w = bufb[i] & 0xFF;

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

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式