0

我正在开发一个项目(带有 java 2 ee 的 Web 应用程序),我需要OutputStreamCOM端口上发送一个,其中的数据类型OutputStreambyte[],该数据的一个字节是我试图与之通信的目标硬件的地址. 问题是硬件的地址必须由用户在网页中提供。那么如何将字节的字符串表示形式转换为实数byte?我希望下面的代码可以使问题更加生动

String data1 = "0xA1";
String data2 = "0xAB";

我需要将以下行放在 OutputStream 中。

byte[] b = new byte[]{0xA1,0xAB};

有人说使用org.apache.commons.codec.binary.Base64可以解决问题,但我没有任何线索。先感谢您。

4

3 回答 3

3

这简单:

byte b = Integer.decode("0xA1").byteValue();

链接到javadoc

于 2013-04-21T06:49:31.833 回答
1

您可以使用以下方法将字符串转换为其字节值表示,但您只需要发送字符串中没有“0x”的部分

public static byte convertStringToByte(String str){
    return (byte)Integer.parseInt(str, 16);
}
于 2013-04-21T06:48:08.090 回答
0

如果您想自己动手而不是通过函数调用来获得乐趣,请
执行以下操作

获取 ASCII 值
除以 2 收集提醒(将是 1 或 0 )
最后反转整个序列

例如,对于十进制 32,您应该得到 0100000

如果你正在初始化 COM 端口,你也可以
直接使用一些序列(ASCII 序列)而不是二进制,查看手册。

于 2013-04-21T07:11:19.073 回答