首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java图片读取的字节数组中超过127为负数,该如何处理

2012-02-02 
java图片读取的字节数组中超过127为负数因为做一个东西,需要把图片的字节数组传送到C#写的服务端,问题也就

java图片读取的字节数组中超过127为负数
因为做一个东西,需要把图片的字节数组传送到C#写的服务端,问题也就来了,java这边是如果字节数组中超过127的数都会以负数的形式显示,因为我们知道java读取的方式只支持字节数组,而byte是8位,所以不能超过127,如果超过就会溢出,以负数的形式显示,如果避免这样一个问题,读取的字节数组全部不会出现负数

[解决办法]
你读的是字节,如1111 0011这个字节,你要管他负数还是正数?

只要传到c#那边,它取到的也是1111 0011,就表示没有传错,正负数有关系么?
[解决办法]
传过去在c#那边不就变成正的了嘛

探讨

引用:

你读的是字节,如1111 0011这个字节,你要管他负数还是正数?

只要传到c#那边,它取到的也是1111 0011,就表示没有传错,正负数有关系么?

可能是误会我的意思,java的读取文件的方式有两种一种是字节流,另外一种是字符流
如果是字节流,那么就是以字节数组的形式保存文件的信息,那么情况那就出来了,java的byte是-128~12……

[解决办法]
我也纳闷,为什么不会?
难道中间有隐式的转型?
byte(java)->int->byte(c#)
如果是byte到byte的话,确实不用管正还是负
楼主是怎么传的?又是怎么取的?
[解决办法]
b & 0xff;

这样就可以了。
[解决办法]
这样操作的结果是一个int,自然就变成了正值
[解决办法]
探讨

引用:

我也纳闷,为什么不会?
难道中间有隐式的转型?
byte(java)->int->byte(c#)
如果是byte到byte的话,确实不用管正还是负
楼主是怎么传的?又是怎么取的?

当然是通过gson传送的,没问题的

热点排行