java中如何将文本框内的字符串转化成十进制或十六进制或二进制

时间:2023-01-07 09:03:14
如何将文本域内的字符串转换成不同进制显示,如下显示
java中如何将文本框内的字符串转化成十进制或十六进制或二进制
其中右侧可选择二进制或十进制或十六进制显示

6 个解决方案

#1


java中没有提供2进制和16进制的直接转换,要转换他们都先源进制数转换成10进制数后在用
Integer.toString(源进制数转成10进制数的int,你要转换的目标进制);
例如
2进制数101001011要转成16进制则先将这个2进制数转换成10进制数
int digit=Integer.valueOf("101001011",2);//根据2进制形式转换成10进制
String hexString=Integer.toString(digit,16);//转换成16进制的字符串
16进制0xab转2进制同理
int digit=Integer.valueOf("0xab",16);//根据16进制形式转换成10进制
String hexString=Integer.toString(digit,2);//转换成2进制的字符串
多去看看Integer的api就明白了

#2


引用 1 楼 suciver 的回复:
java中没有提供2进制和16进制的直接转换,要转换他们都先源进制数转换成10进制数后在用
Integer.toString(源进制数转成10进制数的int,你要转换的目标进制);
例如
2进制数101001011要转成16进制则先将这个2进制数转换成10进制数
int digit=Integer.valueOf("101001011",2);//根据2进制形式转……


但是我不知道最开始文本域里面的数字是十进制还是二进制还是16进制的,这怎么处理呢?

#3


你在初始化时就记录JComboBox的选中项,在JComboBox上添加ItemListener当改变选中项时就可以把当前的选中项与久的选中项对比,就知道是多少进制转多少进制了

#4


引用 3 楼 suciver 的回复:
你在初始化时就记录JComboBox的选中项,在JComboBox上添加ItemListener当改变选中项时就可以把当前的选中项与久的选中项对比,就知道是多少进制转多少进制了



谢谢,给我提供了一个思路!非常感谢,能在问一个问题吗?

如何实现数字与可续计数法互相转换
例如:120000转化为1.20000E5
    0.000012转换为1.20000E-5

1.20000E-5转换为0.000012

#5


用格式化
数字转换成科学计数法
System.out.printf("%e",(double)120000)或者
String.format("%e",(double)120000);
科学计数法转换成数字
System.out.printf("%f",(double)1.20000E-5); 或者
String.format("%f",(double)1.20000E-5)

#6


引用 5 楼 suciver 的回复:
用格式化
数字转换成科学计数法
System.out.printf("%e",(double)120000)或者
String.format("%e",(double)120000);
科学计数法转换成数字
System.out.printf("%f",(double)1.20000E-5); 或者
String.format("%f",(double)1.2……


谢谢大神!解决我很多困扰,本人初学java所以比较菜。

#1


java中没有提供2进制和16进制的直接转换,要转换他们都先源进制数转换成10进制数后在用
Integer.toString(源进制数转成10进制数的int,你要转换的目标进制);
例如
2进制数101001011要转成16进制则先将这个2进制数转换成10进制数
int digit=Integer.valueOf("101001011",2);//根据2进制形式转换成10进制
String hexString=Integer.toString(digit,16);//转换成16进制的字符串
16进制0xab转2进制同理
int digit=Integer.valueOf("0xab",16);//根据16进制形式转换成10进制
String hexString=Integer.toString(digit,2);//转换成2进制的字符串
多去看看Integer的api就明白了

#2


引用 1 楼 suciver 的回复:
java中没有提供2进制和16进制的直接转换,要转换他们都先源进制数转换成10进制数后在用
Integer.toString(源进制数转成10进制数的int,你要转换的目标进制);
例如
2进制数101001011要转成16进制则先将这个2进制数转换成10进制数
int digit=Integer.valueOf("101001011",2);//根据2进制形式转……


但是我不知道最开始文本域里面的数字是十进制还是二进制还是16进制的,这怎么处理呢?

#3


你在初始化时就记录JComboBox的选中项,在JComboBox上添加ItemListener当改变选中项时就可以把当前的选中项与久的选中项对比,就知道是多少进制转多少进制了

#4


引用 3 楼 suciver 的回复:
你在初始化时就记录JComboBox的选中项,在JComboBox上添加ItemListener当改变选中项时就可以把当前的选中项与久的选中项对比,就知道是多少进制转多少进制了



谢谢,给我提供了一个思路!非常感谢,能在问一个问题吗?

如何实现数字与可续计数法互相转换
例如:120000转化为1.20000E5
    0.000012转换为1.20000E-5

1.20000E-5转换为0.000012

#5


用格式化
数字转换成科学计数法
System.out.printf("%e",(double)120000)或者
String.format("%e",(double)120000);
科学计数法转换成数字
System.out.printf("%f",(double)1.20000E-5); 或者
String.format("%f",(double)1.20000E-5)

#6


引用 5 楼 suciver 的回复:
用格式化
数字转换成科学计数法
System.out.printf("%e",(double)120000)或者
String.format("%e",(double)120000);
科学计数法转换成数字
System.out.printf("%f",(double)1.20000E-5); 或者
String.format("%f",(double)1.2……


谢谢大神!解决我很多困扰,本人初学java所以比较菜。