我需要向微控制器发送一些命令。 我使用RXTX库。我可以连接到我的微控制器,但我有问题将我的命令转换为正确的字节。
例如: 我想发送0x80十六进制值。
如果我将128整数(0x80)转换为字节
byte a = (byte) 128;
我得到-128
java字节的范围是-128 - 127
但我需要发送128作为命令。我怎么转换它?
我还有其他命令要发送。
80
20 F2 40 F8 3F
FA 21 40
其中一个是40位。
我写入输出流,可以接受byte[]
或int
。
...
static OutputStream out;
out.write(byte[]);
out.write(int);
..
但是int超出了40bit的范围。如何将40位整数解析为一个字节?
答案 0 :(得分:1)
0x80仍为0x80。
发送它。
答案 1 :(得分:1)
我已经使用了RXTX的长篇大论,我不认为这很重要。只需发送string.getBytes()
答案 2 :(得分:0)
您可以使用
Byte.parseByte("a", 16);
但这只适用于最多127的值,由于有符号/无符号问题,因此需要转换为字节,因此我建议将其转换为int然后将其转换为byte
(byte) (Integer.parseInt("ef",16) & 0xff);