Topic: 【请教】关于byte

  Print this page

1.【请教】关于byte Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 15:15

请问^^^^标记处应该如何处理,谢谢


byte[] dataBuf = new byte[512];
DatagramPacket packet;
    
try
{
int length = 0;
……
dataBuf[1]=0xB5;
^^^^^^
……
packet = new DatagramPacket(dataBuf,length,InetAddress.getByName(……), ……);
}catch(Exception e)
{
System.out.println(e.toString());
}

2.Re:【请教】 [Re: zero0] Copy to clipboard
Posted by: littledeer1974
Posted on: 2004-11-09 15:21

如何处理是什么意思呢,怎么变成字符串,怎么变成整数?还是....
你想做什么呢,能不能给点背景介绍呀

3.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 16:25

不好意思
没有说清楚
byte类型的范围是-128至+127
0xB5转换成十进制是181,越界
我用UDP数据包socket发送数据,例如上面代码. 我用类DatagramPacket和DatagramSocket来实现.当构造类DatagramPacket时构造函数参数为要发送的数据,它是byte buf[]
有一位的消息定义是0xB5 ,请问这一位应该怎么处理
多谢

4.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: littledeer1974
Posted on: 2004-11-09 16:43

byte buf[]是字节的Array,所以你把0xB5分割成两个BYTE怎么样啊,buf[]就是字节的数组的开头(C里的地址的感觉),知道这个就行了吧我想

5.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 17:04

多谢你的解释
我也有这样想过
不过项目设计(包括消息定义)是别人做的(vc程序员),消息也是发往vc程序的
我初学java,所以不清楚java里有没有方法用一个byte实现
如果不可以的话我再想别的办法吧
非常感谢

6.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: kavinwang
Posted on: 2004-11-09 17:15

"byte类型的范围是-128至+127"

是这样吗?那是有符号,Java中Byte是没有符号的,所以你对byte直接处理就行了
有符号和无符号只是使用的环境不同而定义不同,在一个byte中,如果认为它是一个有符号的数据,那最高位作为符号位的,对于无符号数据,最高位也是数据位,不再表示符号

所以:dataBuf[1]=0xB5;代表无符号数据,直接处理和传送即可

7.Re:【请教】关于byte [Re: kavinwang] Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 17:21

多谢
java中byte为有符号吧
按照上面的代码,编译器会报错
如果将值改为0x7f以下则正确

8.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: kavinwang
Posted on: 2004-11-09 17:32


dataBuf[1]=0xB5;
改成:
dataBuf[1]=(byte)0xB5;
就没错了。
出错是因为0xB5;是int。

9.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 17:37

非常感谢
这样是可以的
多谢

10.Re:【请教】关于byte [Re: zero0] Copy to clipboard
Posted by: zero0
Posted on: 2004-11-09 17:41

不好意思
是我学习的不够,给大家带来了麻烦
多谢各位的解答


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923