进制转换,10进制转2进制8进制16进制,将数组转换为字符串 java

作者: Rememberautumn 分类: 未分类 发布时间: 2014-09-25 17:11 阅读: 8,697

本程序的目的是进行进制的转换,并在JoptionPane.showMessageDialgo里面显示,最主要的是要可以直接选择需要转换的进制拉。

在showMessageDialgo里面显示数组比较麻烦,需要进行转换为String类型,转换方法如下:StringBuffer sb = new StringBuffer();   sb.append(num[i]);将数组内容添加到字符串的后面。

话不多说,上代码!主函数,程序入口

  1. public class clad {
  2.     public static void main(String[] args){
  3.         Convert convert=new Convert();
  4.         Change  change=new Change();
  5.     int convertnumber=change.changenum();
  6.         if(convertnumber==0)
  7.         convert.converttype(2);
  8.         else if (convertnumber==1)
  9.             convert.converttype(8);
  10.         else if (convertnumber==2)
  11.             convert.converttype(16);
  12.         else return;
  13.     }
  14. }

选择需要转换的进制。、

  1. import javax.swing.JOptionPane;
  2. public class Change {
  3.     public int changenum(){
  4.         int numchange=JOptionPane.showOptionDialog(null“选择需要转换的进制”“选择”, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null,new String[]{“转换为二进制”,“转换为八进制”,“转换为十六进制”},“自定义1”);
  5.         return numchange;
  6.     }
  7. }

进制转化

  1. import javax.swing.JOptionPane;
  2. import java.util.Scanner;
  3. public class Convert {
  4.     public void converttype(int type){
  5.         String x1=JOptionPane.showInputDialog(“请输入需要转换的数字”);
  6.           int X1=Integer.parseInt(x1);
  7.           int[] num=new int[20];
  8.           int i=0;
  9.           for( i=0;X1>=1;i++)
  10.           {
  11.               num[i]=X1%type;
  12.               X1/=type;
  13.           }
  14.           StringBuffer sb = new StringBuffer();
  15.           for(i=i-1;i>=0;i–){
  16.               if(num[i]<=9)
  17.               sb.append(num[i]);
  18.               else
  19.                   sb.append((char)(‘A’-10+num[i]));
  20.           }
  21.           JOptionPane.showMessageDialog(null,sb);
  22.     }
  23. }

上代码和运行效果图。

其实更精彩的还在后面,java已经封装好了很多函数,可以直接调用的赛!!

十进制转成十六进制: 
Integer.toHexString(int i) 
十进制转成八进制 
Integer.toOctalString(int i) 
十进制转成二进制 
Integer.toBinaryString(int i) 
十六进制转成十进制 
Integer.valueOf(“FFFF”,16).toString() 
八进制转成十进制 
Integer.valueOf(“876”,8).toString() 
二进制转十进制 
Integer.valueOf(“0101”,2).toString() 

有什么方法可以直接将2,8,16进制直接转换为10进制的吗? 
java.lang.Integer类 
parseInt(String s, int radix) 
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 
examples from jdk: 
parseInt(“0”, 10) returns 0 
parseInt(“473”, 10) returns 473 
parseInt(“-0”, 10) returns 0 
parseInt(“-FF”, 16) returns -255 
parseInt(“1100110”, 2) returns 102 
parseInt(“2147483647”, 10) returns 2147483647 
parseInt(“-2147483648”, 10) returns -2147483648 
parseInt(“2147483648”, 10) throws a NumberFormatException 
parseInt(“99”, throws a NumberFormatException 
parseInt(“Kona”, 10) throws a NumberFormatException 
parseInt(“Kona”, 27) returns 411787 

进制转换如何写(二,八,十六)不用算法 
Integer.toBinaryString 
Integer.toOctalString 
Integer.toHexString 


例二 

public class Test{ 
   public static void main(String args[]){ 

    int i=100; 
    String binStr=Integer.toBinaryString(i); 
    String otcStr=Integer.toOctalString(i); 
    String hexStr=Integer.toHexString(i); 
    System.out.println(binStr); 





例二 
public class TestStringFormat { 
   public static void main(String[] args) { 
    if (args.length == 0) { 
       System.out.println(“usage: java TestStringFormat <a number>”); 
       System.exit(0); 
    } 

    Integer factor = Integer.valueOf(args[0]); 

    String s; 

    s = String.format(“%d”, factor); 
    System.out.println(s); 
    s = String.format(“%x”, factor); 
    System.out.println(s); 
    s = String.format(“%o”, factor); 
    System.out.println(s); 
   } 




其他方法: 

Integer.toHexString(你的10进制数); 
例如 
String temp = Integer.toHexString(75); 
输出temp就为 4b 



//输入一个10进制数字并把它转换成16进制 
import java.io.*; 
public class toHex{ 

public static void main(String[]args){ 

int input;//存放输入数据 
//创建输入字符串的实例 
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); 
System.out.println(“请输入一个的整数:”); 
String x=null; 
try{ 
x=strin.readLine(); 
}catch(IOException ex){ 
ex.printStackTrace(); 

input=Integer.parseInt(x); 
System.out.println (“你输入的数字是:”+input);//输出从键盘接收到的数字 

System.out.println (“它的16进制是:”+Integer.toHexString(input));//用toHexString把10进制转换成16进制 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注