簡體   English   中英

內置的Java類/方法可在二進制,十進制和八進制之間進行轉換?

[英]built-in Java classes/methods to convert between binary, decimal, and octal?

我知道在二進制,十進制和八進制之間進行轉換的幾個通用公式,但是我想知道Java是否具有在這三種之間轉換的任何內置方法或類。 例如,在Integer類中,有一些靜態方法,例如toBinaryString,toOctalString等,它們允許進行十進制轉換,但我還沒有找到其他方法來進行其他轉換。 有人知道嗎?

特別是,我正在尋找將八進制和二進制轉換為十進制以及在八進制和二進制之間轉換的方法

謝謝! X

Integer.parseInt采用一個可選的第二個參數作為基礎來解析它。因此,要獲取二進制文件,

Integer.parseInt(value, 2); 

八,

Integer.parseInt(value,8);

您正在尋找Integer.parseInt(String s,int radix)和Integer.toBinaryString(int i),Integer.toOctalString(int i)和Integer.toHexString(int i)。 所有這些都是Integer類的靜態方法。

因此,將F十六進制轉換為1111二進制:

int fifteen = Integer.parseInt("F", 16);
String fifteenInBinary = Integer.toBinaryString(fifteen);

fifteenInBinary等於“ 1111”;

您可以使用Long.toBinaryString()或Long.toOctalString()將十進制轉換為二進制或八進制。

這里有2種方法,可以從二進制轉換為十進制,從八進制轉換為十進制,也可以使用這些方法從八進制轉換為十進制,然后轉換為二進制。

    public long binaryToDecimal(String binary) {
    long decimal = 0;
    int power = 0;
    for (int i = binary.length() - 1; i >= 0; i--) {
        String digit = "" + binary.charAt(i);
        decimal += Integer.parseInt(digit) * Math.pow(2, power++);
    }
    return decimal;
}

public long octalToDecimal(String octal) {
    long decimal = 0;
    int power = 0;
    for (int i = octal.length() - 1; i >= 0; i--) {
        String digit = "" + octal.charAt(i);
        decimal += Integer.parseInt(digit) * Math.pow(8, power++);
    }
    return decimal;
}

怎么樣: parseInt(String s,int radix)

parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102

好吧你可以用方法

Integer.toBinaryString(val);

該代碼可能類似於:

public class NewClass4 
{
public static void main(String[] args)
{
    int value;
    String binary;
    Scanner sc=new Scanner(System.in);
    value=sc.nextInt();
    binary=Integer.toBinaryString(value);
    System.out.println(binary);
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM