关于发送字节的值超出存储范围

大人物小孩子 2014-07-25 11:28:34
RT:最近在搞传感器,需要向网关发送命令。这里我用字节存储命令 通过socket发送,命令如下:
byte[] bufStatus= new byte[17];//消息命令
bufStatus[0] = 0x15; //MBAP头
bufStatus[1] = 0x01;
bufStatus[2] = 0x00;
bufStatus[3] = 0x00;
bufStatus[4] = 0x00;
bufStatus[5] = 0x0b;
bufStatus[6] = 0x02;
bufStatus[7] = 0x10; //功能码
bufStatus[8] = 0x00; //起始地址
bufStatus[9] = 0x00; //起始地址
bufStatus[10] = 0x00; //寄存器个数
bufStatus[11] = 0x02; //寄存器个数
bufStatus[12] = 0x04;
bufStatus[13] = 0xa4; //设备名称
bufStatus[14] = 0x40;
bufStatus[15] = 0xf; //开启
bufStatus[16] = 0xf; //开启
结果在eclipse下0xa4报错了!原因也找到了:0xa4转为十进制为164,而byte的范围为-128~127 超出范围了...
那该怎么解决?因为0xa4是api提供的设备名称,需要发送才能正确执行命令
小弟想了很久未果,求大侠帮忙
...全文
2935 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
大人物小孩子 2014-08-14
  • 打赏
  • 举报
回复
多谢版主帮顶~ 问题已解决。 bufStatus[13] = (byte)0xa4就可以了
业余草 2014-07-25
  • 打赏
  • 举报
回复
好高深啊,来顶你的

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧