Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中如何将二进制字符串转换为十六进制并通过Uart端口发送_Java_String_Hex_Byte - Fatal编程技术网

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

java中如何将二进制字符串转换为十六进制并通过Uart端口发送,java,string,hex,byte,Java,String,Hex,Byte,我有一个二进制字符串,看起来像11001111 0001111 11111111,我想把它转换成十六进制,然后通过Uart发送到Arduino。 如何将每个8位转换为十六进制而不获取有符号值,因为字节数据类型不支持大于128的值 我正在这样做 string b = "110011110001111111111111" byte[] bval = new BigInteger(b, 2).toByteArray(); 预期产出:cf1fff 由于所有这些位都对应于数据中的某些数据更改,因此会改变

我有一个二进制字符串,看起来像11001111 0001111 11111111,我想把它转换成十六进制,然后通过Uart发送到Arduino。 如何将每个8位转换为十六进制而不获取有符号值,因为字节数据类型不支持大于128的值

我正在这样做

string b = "110011110001111111111111"
byte[] bval = new BigInteger(b, 2).toByteArray();
预期产出:cf1fff

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

对于此字符串=110010001010000000100000000000000000000000000,我收到数字格式异常。如何解决此问题?如果您的数字非常高/大,请将int更改为long或大整数。但我对十六进制字符串={c89484000000}有一个疑问;字节数组输出为={99,56,57,52,56,52,48,48,48};对于这个二进制字符串=“110010001010000000100000000000000000000000000”,因此我在接收端得到了错误的值。请将数组和int变量更改为long。问题是getBytes()为字符串t中的每个字符提供ASCII值。我不想,我想发送十六进制,因为它是
String b = "110011110001111111111111";

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

String t = Integer.toHexString(decimal);

byte[] bval = t.getBytes();