小弟遇到一个问题就是系统之间有多个模块,然后多个模块之间传输是用的一套内部协议,由C++这边传到java这边的是16进制 比如c++这边传给我的是5bf94e0d8d77 码流,我这边就要通过移位算法转成byte数组来转成相应的汉字,不知道该怎么弄,下面是我调用jdk里面的方法转出来的,我想懂的是jdk里面的移位实现(或者说是char怎么转成byte比如char的5bf9
表示汉字"对",byte是-74, -44 表示汉字"对"),求大牛讲解
String s1 = "对不起";
char[] chars = s1.toCharArray();
byte[] bytes = new byte[chars.length];
for (char a : chars) {
System.out.println(Integer.toHexString((char) a));
}
System.out.println(Arrays.toString(s1.getBytes())); String strs = "5bf9,4e0d,8d77";
char[] ch = strs.toCharArray();
String[] s = strs.split(",");
for (int i = 0; i < s.length; i++) {
System.out.print((char) Integer.parseInt(s[i], 16));
}
System.out.println();
System.out.println(new String(new byte[] { -74, -44 }));输出结果是:
5bf9
4e0d
8d77
[-74, -44, -78, -69, -58, -16]
对不起对