如何从字节的字符串表示创建一个字节

时间:2013-04-21 06:40:19

标签: java java-ee codec

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

byte

我需要在OutputStream中添加以下行。

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

有人说使用byte[] b = new byte[]{0xA1,0xAB}; 可以解决问题,但我没有任何线索。 提前谢谢你。

3 个答案:

答案 0 :(得分:3)

很简单:

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

链接到javadoc

答案 1 :(得分:1)

你可以使用下面的方法将String转换为它的字节值表示,但你只需要发送它的部分字符串而不用“0x”

public static byte convertStringToByte(String str){
    return (byte)Integer.parseInt(str, 16);
}

答案 2 :(得分:0)

如果你想自己动手而不是通过函数调用来实现它 像下面这样做

获取ASCII值
  除以2收集提醒(将为1或0)
  最后颠倒整个序列

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

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