日期:2014-05-20  浏览次数:20624 次

关于从JTextField中输入数值的转换问题
从JTextField中输入一个数,比如说是10067(其十六进制为2753),利用getText()后得到String str = "10067",如何将这个数值转换为int[] value = {0x53,0x27};本人虽然通过ASCII码运算可以输出value={53,27},但仍然是错的,可能是误将ASCII码当成了十六进制了,想了很久都没想出来,不知有什么思路可以解决?谢谢
String ASCII码 十六进制 大小端

------解决方案--------------------
可以用位运算啊
String str = "10067";
int str_int=Integer.parseInt(str);
int value[]={str_int & 0xff,(str_int>>8) & 0xff};
System.out.println(Integer.toHexString(value[0])+" "+Integer.toHexString(value[1]));

但是我不知道如果是负数你想怎么处理啊?
------解决方案--------------------
楼上的方法最好,也可以运算:

int x=10067;
int[] arr=new int[2];
arr[0]=x%256;//低位在前
arr[1]=x/256;//高位在后