返回信息流例如,int a1=1000,那么在a1在内存中就是E8 03 00 00,求教大牛如何把“E8 03 00 00”这个字符串复制到一个string里?谢谢了!
这是一条镜像帖。来源:北邮人论坛 / java / #18588同步于 2011/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【求教】JAVA里如何把一个整数的内存形式复制到一个string里
zl
2011/6/1镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
1000的十六进制是E8 03 00 00?
【 在 zl (宝澈) 的大作中提到: 】
: 例如,int a1=1000,那么在a1在内存中就是E8 03 00 00,求教大牛如何把“E8 03 00 00”这个字符串复制到一个string里?谢谢了!
public class compute {
public static void main(String[] args) {
int a1 = 1000;
byte[] a = new byte[4];
a[3] = (byte) ((a1 >> 24) & 0xff);
a[2] = (byte) ((a1 >> 16) & 0xff);
a[1] = (byte) ((a1 >> 8) & 0xff);
a[0] = (byte) (a1 & 0xff);
StringBuffer sb = new StringBuffer();
for (byte temp : a){
String hex = Integer.toHexString(temp & 0xff);
sb.append(hex.length()>1?hex.toUpperCase():"0"+hex.toUpperCase());
}
String finalstring = sb.toString();
System.out.println(finalstring);
}
}
【 在 zl (宝澈) 的大作中提到: 】
: 例如,int a1=1000,那么在a1在内存中就是E8 03 00 00,求教大牛如何把“E8 03 00 00”这个字符串复制到一个string里?谢谢了!
Integer.toHexString(1000)
补零就行了
【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: 1000的十六进制是E8 03 00 00?
楼主说的是在内存中的形式,和1000的16进制表示 不是一个意思
【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: 1000的十六进制是E8 03 00 00?
突然发现这么打出来是反的,java应该是大字节序的
【 在 ox (小贝) 的大作中提到: 】
: public class compute {
: public static void main(String[] args) {
: int a1 = 1000;
: ...................
不是啊
【 在 buptlong 的大作中提到: 】
: 1000的十六进制是E8 03 00 00?
: 【 在 zl (宝澈) 的大作中提到: 】
: : 例如,int a1=1000,那么在a1在内存中就是E8 03 00 00,求教大牛如何把“E8 03 00 00”这个字符串复制到一个string里?谢谢了!
: ...................
太谢谢了!大牛啊!对了,还有一个问题想请教,比如整数1000,我想把它放到string中去,也就是说,string里的4个字节的内存形式就是e8 30 00 00,如果直接string+1000的话,那么变成31 30 30 30了,这个怎么办啊?
【 在 ox 的大作中提到: 】
: 楼主说的是在内存中的形式,和1000的16进制表示 不是一个意思
: 【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: : 1000的十六进制是E8 03 00 00?
: ...................
应该是多少
1000+1000
D0 07 00 00?
【 在 zl (宝澈) 的大作中提到: 】
: 太谢谢了!大牛啊!对了,还有一个问题想请教,比如整数1000,我想把它放到string中去,也就是说,string里的4个字节的内存形式就是e8 30 00 00,如果直接string+1000的话,那么变成31 30 30 30了,这个怎么办啊?