byte [] demande = new byte [2]; 我们假设demande是一个将被发送到套接字的数据帧。 如果我想发送200,应该是byte [0]和byte [1]应该是什么。我尝试写byte [0] = 1和byte [1] = - 56(1 * 256 - 56)= 200但它不工作。我该怎么办?
答案 0 :(得分:1)
我假设数字200是十进制值。 当200小于255时,它将适合一个字节,因为200的十六进制值是0xC8。
所以在你的情况下你有两个选择。哪一个是正确的取决于您使用的协议。
无论
byte[] demande = { 0x00, 0xC8 }; // little endian
或
byte[] demande = { 0xC8, 0x00 }; // big endian
或者如果您愿意
byte[] demande = new byte[2];
demande[0] = 0x00;
demande[1] = 0xC8;
(小端)
答案 1 :(得分:1)
您可以使用ByteBuffer类来创建字节数组。如果要将整数200转换为字节数组:
ByteBuffer b = ByteBuffer.allocate(2);
b.putInt(0x000000c8);
byte[] result = b.array();