关于发送字节的值超出存储范围
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提供的设备名称,需要发送才能正确执行命令
小弟想了很久未果,求大侠帮忙