初学JAVA,做了一个十进制转换成二进制的小程序
如下:
class TenToBinary {
public static void main(String args[]) {
int x = 89;
StringBuffer s = new StringBuffer();
while (x>0) {
s.append(x%2);
x = x / 2;
}
s.reverse();
System.out.println(s);
}
}
可是要把它改成十进制转换成十六进制的程序怎样改呢?
ABCDEF怎么转换呢?请高手帮忙

解决方案 »

  1.   

    Integer.toBinaryString(int i) 二进制
    Integer.toHexString(int i)  十六进制
    Integer.toOctalString(int i) 八进制
      

  2.   

    十进制转成十六进制: 
    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() 
      

  3.   

    先建一个String变量,然后对X%16做判断,小于10就转换类型赋值给变量,如果大于10就赋值相应的字符,然后s.append(变量)
      

  4.   

    char []ch=new char[]{'A','B','C','D','E','F'};
       
       int a=32;
       int b=0;
    StringBuffer s = new StringBuffer(); 
    do
    {
    b=a/16;
    if(b>9)
    s.append(ch[b%10]);
    else
    s.append(b);
       
    }while(a%16>16);
    b=a%16;
    if(a%16>9)
    s.append(ch[b%10]);
    else
    s.append(b);
    System.out.println(s);
    看看,应该还可以吧!行的话就给点分哦,现场遍的了
      

  5.   

    我自己做了个很笨的
    class TenToHex1 {
    public static void main(String args[]) {
      int x = 230;
      StringBuffer sb = new StringBuffer();
      int temp = 0;
      while(x>0) {
       temp = x%16;
       if(temp == 10){
        sb.append('A'); 
       }else if(temp == 11){
        sb.append('B'); 
       }else if(temp == 12){
        sb.append('C'); 
       }else if(temp == 13){
        sb.append('D'); 
       }else if(temp == 14){
        sb.append('E'); 
       }else if(temp == 15){
        sb.append('F'); 
       }else {
       sb.append(temp);
       } 
       x = x/16;
      }
      System.out.println(sb.reverse()); 

    }下面是老师教的两个
    class TenToHex2 {
    public static void main(String args[]) {
      int x = 91;
      StringBuffer sb = new StringBuffer();
      int temp = 0;
      while(x>0) {
       temp = x%16;
       if(temp>9) {
        temp = temp-10+'A';
        sb.append((char)temp); 
       }else {
        sb.append(temp);
       }
       x = x/16;
      }
      System.out.println(sb.reverse()); 

    }
    class TenToHex3 {
    public static void main(String args[]) {
      int x = 230;
      StringBuffer sb = new StringBuffer();
      int temp = 0;
      for(int i=0; i<8; i++) {
       temp = x&15;
       if(temp>9) {
        temp = temp-10+'A';
        sb.append((char)temp); 
       } else {
        sb.append(temp); 
       }
       x = x>>4;
      }
      System.out.println(sb.reverse()); 

    }感谢4楼和5楼哦