如何将二进制字符串转换为十六进制并通过Java中的Uart端口发送

问题描述 投票:0回答:1

我有一个二进制字符串,看起来像这样11001111 00011111 11111111,想要将其转换为十六进制并通过Uart发送给Arduino。如何将每个8位转换为十六进制而又不获取带符号的值,因为字节数据类型不支持大于128的值。

我正在这样做

string b = "110011110001111111111111"
byte[] bval = new BigInteger(b, 2).toByteArray();

预期输出:cf1fff

由于所有这些位都对应于某些数据更改,因此数据更改会改变接收方的行为。请告诉我哪里错了。

java string hex byte
1个回答
0
投票
String b = "110011110001111111111111";

int decimal=Integer.parseInt(b,2);

String t = Integer.toHexString(decimal);

byte[] bval = t.getBytes();
© www.soinside.com 2019 - 2024. All rights reserved.