怎么将十六进制字符串:0020000000c00012 转换成:0x00 0x20 0x00 0x00 0x00 0xc0 0x00 0x12 . 最好有代码.
解决方案 »
- 菜鸟求解问题出在哪里,谢谢
- 想做一个能联机使用的软件
- 请问 static initializer 的使用时机
- 一个比较让我头疼的问题
- 关于对文件删除操作的问题?
- 为什么我启动ireport.bat时界面都是方框?
- 谁知道JVM将内存一共分成几个模块,每个部分都存储什么,尤其是方法或是静态方法都存储在那个部分。
- JAVA象C++中运算符重载怎么做?
- 我用的是 JCreator LE 工具,为什么里面的写上汉字却是乱码?
- 在Applet中,我如何才能打开一个新的页面?
- 急,如何log4j将INFO信息输出到AWT界面中的一个TEXTARWA中;如何做一个像Eclipse的控制台一样自动滚动文字
- 能不能把object转回interface
conv<<hex;
conv<<"0020000000c00012";
unsigned char sz[8]={0};
long long *xx = (long long*)sz;
conv>> *xx;
reverse( sz , sz + 8 );
这里的sz就是你所需要的字符串了,
#include<sstream>
#include<algoritm>
用String类里的toCharArray() 或者 subString(int beginIndex, int endIndex)都能实现
String[] str = new String[8];
for(int i = 7; i >= 0; i--) {
str[i] = String.format("0x%02x", (num & 0xffL << (i*8)) >> (i*8));
System.out.print(str[i] + " ");
}
long num = Long.parseLong(s, 16);
int k = s.length() / 2;
String[] str = new String[k];
for (int i = k - 1; i >= 0; i--) {
str[i] = String.format("0x%02x", (num & 0xffL << (i * 8)) >> (i * 8));
System.out.print(str[i] + " ");
}
参考代码:
package net.oicp.sunflowerbbs;public class Ahex { static Byte[] Convert(String str) {
int len = str.length();
Byte[] result = new Byte[(int)Math.round(len/2.0D)];
int k=0;
for (int i = 0; i < len; i += 2) {
String tmp = str.substring(i, i + 2 > len ? i + 1 : i + 2);
Long hex = Long.parseLong(tmp, 16);
result[k]=hex.byteValue();
System.out.println(result[k]);
k++;
}
return result;
} public static void main(String[] args) { Convert("0020000000c00012"); }}