我有一个二进制字符串,看起来像这样11001111 00011111 11111111,想要将其转换为十六进制并通过Uart发送给Arduino。如何将每个8位转换为十六进制而又不获取带符号的值,因为字节数据类型不支持大于128的值。
我正在这样做
string b = "110011110001111111111111"
byte[] bval = new BigInteger(b, 2).toByteArray();
预期输出:cf1fff
由于所有这些位都对应于某些数据更改,因此数据更改会改变接收方的行为。请告诉我哪里错了。
String b = "110011110001111111111111";
int decimal=Integer.parseInt(b,2);
String t = Integer.toHexString(decimal);
byte[] bval = t.getBytes();