上機題-進制轉換

題目描述

寫一個程序,接受一個十六進制的數值字符串,輸出該數值的十進制字符串。


輸入描述:
* 輸入一個十六進制的數值字符串。

輸出描述:
* 輸出該數值的十進制字符串。

輸入例子:
* 0xA

輸出例子:
* 10


算法實現:

方法一:

  1. 將十六進制的數值字符串轉換成十進制字符串,用Integer類的
    public static int parseInt(String s, int radix)
    方法:使用第二個參數指定的基數,將字符串參數解析爲有符號的整數。

  2. substring 方法 截取字符串
    public String substring(int beginIndex, int endIndex)
    方法: 第一個int爲開始的索引,對應String數字中的開始位置;第二個是截止的索引位置,對應String中的結束位置

    1. 取得的字符串長度爲:endIndex - beginIndex;
    2. 從beginIndex開始取,到endIndex結束,從0開始數,其中不包括endIndex位置的字符

    例如:
    “hamburger”.substring(4, 8) returns “urge”
    “smiles”.substring(1, 5) returns “mile”
    取長度大於等於3的字符串a的後三個子字符串,只需a.subString(a.length()-3, a.length());

代碼如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        //多個測試用例使用while(sc.hasNext()){}
        while(sc.hasNext()){
            String s = sc.next().substring(2);
            System.out.println(Integer.parseInt(s, 16));
        }   
    }   
}

方法二:


JAVA 轉換 總結

  1. 類:Integer或Long
    方法:toBinaryString(int i)
    整數 轉換成 二進制
    (參數i 表示要轉換成字符串的整數)

  2. 類:Integer或Long
    方法:toOctalString(int i)
    整數 轉換成 八進制
    (參數i 表示要轉換成字符串的整數)

  3. 類:Integer或Long
    方法:toHexString(int i)
    整數 轉換成 十六進制
    (參數i 表示要轉換成字符串的整數)

  4. 類:Integer或Long
    方法:toString(int i,int radix)
    任意進制整數 轉換成 其他進制的整數
    (參數i:表示要轉換成字符串的整數,radix:表示用於字符串表示形式的基數)

        int H_int = 0xA57B; //十六進制聲明:前面加0x
        String h_string= Integer.toString(H_data, 2);
        System.out.println(h_2);
    public class Main {
    public static void main(String[] args){
        int O_data = 0766; //八進制聲明:前面加0
        int T_data = 123456; //十進制聲明
        int H_data = 0xA57B; //十六進制聲明:前面加0x
    
        // 八進制轉換成二進制
        System.out.println("八進制" + O_data + "轉換成二進制:");
        System.out.println(Integer.toString(O_data, 2));
        System.out.println(Integer.toBinaryString(O_data));
    
        // 八進制轉換成十進制
        System.out.println("八進制" + O_data + "轉換成十進制:");
        System.out.println(Integer.toString(O_data, 10));
        System.out.println(Integer.toString(O_data));
    
        // 八進制轉換成十六進制
        System.out.println("八進制" + O_data + "轉換成十六進制:");
        System.out.println(Integer.toString(O_data, 16));
        System.out.println(Integer.toHexString(O_data));
    
        //十進制轉換成二進制
        System.out.println("十進制" + T_data + "轉換成二進制:");
        System.out.println(Integer.toString(T_data, 2)) ;
        System.out.println(Integer.toBinaryString(T_data));     
    }
    }
  5. 類:Integer或Long
    方法:parseInt(String s) 或 parseLong(String s)
    將字符串 轉換成 整數

    String s = "0123";
    int b = Integer.parseInt(s);
    System.out.println(Integer.parseInt(s));    
  6. 類:Integer或Long
    方法:parseInt(String s, int radix) 或 parseLong(String s, int radix)
    任意進制字符串 轉換成 其他進制的整數
    (參數s:表示要轉換成整數的字符串;radix:表示用於整數表示形式的基數)

Java中在聲明數字時默認採用的是十進制,可以在數字前加上特定的符號表示數字採用八進制或者十六進制。數字前面加數字0(零)表示該數字是八進制,例如:012。加0x(零x)表示該數字是十六進制。例如:0x00FF。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章