天天看點

【Java學習筆記之四】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",

【Java學習筆記之四】java進制轉化

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);

    s = String.format("%o", factor);

   }

其他方法:

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進制