客户端有一组数据{2,0,92,0,0,127,0,0,0,0,255,255,255,255,0,160,162,4,248,87,245,0,0,0,0,0,88,250,18,0,150,225,81,0,52,250,18,0,24,226,81,0,88,250,18,0,96,250,18,0,123,226,81,0,88,250,18,0,128,254,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,252,18,0,235,39,83,0,108,250,18,0,186,48,83,0};用 OutputStream out;out.write(byte[] data) 只能发送byte字节流.而我上面的有很多 数据 已经 超出 byte范围 -128--127了这个问题怎么解决.
服务器是用C++写的,C++有 无符号 byte,所以java 就有这个问题存在!
服务器是用C++写的,C++有 无符号 byte,所以java 就有这个问题存在!
解决方案 »
- 询问专业培训学校的老师都没能解释清楚的问题,估计也是困扰很多新手的一个问题,有没有人能够解答一下呢
- 根据条件删除ArrayList里面的数据
- (关于策略模式)请教一题根本看不懂得面试题
- JMF: 怎样直接从一个数组里面取视频数据播放?
- 在jbuilder中项目的类 互相调用怎么样实现
- JTable与数据库更新遇到问题
- 写文本文件,怎么写入一个tab键,谢谢
- 请教一个Swing的技术问题.
- 如何把一个class中的Object[][]传送到另一个class中去???
- 不用maven构建的javase项目,导出成jar包后报错,用了spring构建项目
- 怎么实现SWT窗口间的数据交流?
- 以下代码有3个错误,请找出并说明为什么,谢谢
等高人吧~
byte是会变成负数,但是在内存中表示还是一样的,你传过去c++那变认识。见如下代码: public static void main(String[] args) {
int i = 200;
byte b = (byte)i;
System.out.println(b);
}
只是如果你原來是 int 數組,就得逐一轉型成byte
然後byte轉回int時 用 0xFF遮罩就行。
ex
int a = 255;
byte b = (byte)a;
int c = 0xFF & b;
总的来说java没有无符号型数据还是比较麻烦的
不过这对java写二进制数据没有影响,只对读取二进制文件有影响,这跟数字的内部存储方式有关。按你说的 如果加密对有无符号敏感的话 必须得修改加密算法嘞