當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Binary轉Octal用法及代碼示例


二進製數字係統由兩個符號組成:0(零)和 1(一),分別代表數字電子學中的低或關閉和高或開啟狀態。它主要是一個以 2 為底的數字係統,也廣泛用於計算機科學。所有數據都存儲在計算機中的二進製符號中,也稱為位。二進製係統的名稱源於它僅由兩個符號組成的事實。二進製數也可以被認為是一個隻有 0 和 1 的字符串。

八進製數係統包括從 0 到 7 的八位數字。它的名稱源於它由八位數字組成(因此是 Oct),這意味著八位。它是一個 8 基數係統,可以通過將二進製數中的位分組為三個一組並將每個組的對應值計算為所得八進製數中的單個數字來製定。

例:

Input: 100100
Output: 44

Input: 1100001
Output: 141

在本文中,我們將探討兩種將二進製數轉換為八進製數的方法。這些方法如下:

  • 在 Java 中使用 內置 toOctalString() 方法
  • 將二進製數轉換為十進製數,然後再轉換為相應的八進製數。

方法一:



使用這種方法,我們首先將二進製數轉換為 Integer,然後使用 java 的 toOctalString() 內置 方法將其轉換為八進製數字符串。然後該字符串再次轉換為 Integer。

用法:

public static String toOctalString(int num)

參數:該方法接受需要轉換為字符串的整數類型的單個參數 num。

返回值:該函數將整數參數的字符串表示形式返回為以 8 為底的無符號整數。

算法:

  1. 將二進製數轉換為十進製數。
  2. 使用 toOctalString() 方法將此十進製數轉換為八進製數字符串。
  3. 再次將此字符串轉換為整數。

例:

Java


// Java program to convert binary to octal
  
class GFG {
  
    // method to convert binary to decimal
    int binaryToDecimal(long binary)
    {
        // variable to store the decimal number
        int decimalNumber = 0, i = 0;
  
        // loop to extract the digits of the
        // binary number
        while (binary > 0) {
  
            // multiplying each digit of binary
            // with increasing powers of 2 towards
            // left
            decimalNumber
                += Math.pow(2, i++) * (binary % 10);
  
            // dividing the binary by 10
            // to remove the last digit
            binary /= 10;
        }
  
        // returning the converted decimal number
        return decimalNumber;
    }
  
    // function to convert decimal to octal
    int decimalToOctal(long binary)
    {
  
        // variable to store the decimal number
        // returned by the binaryToDecimal()
        int decimalNumber = binaryToDecimal(binary);
  
        // using the toOctalString() to convert
        // Integer to String of Octal Number
        String octalString
            = Integer.toOctalString(decimalNumber);
  
        // converting the String of octal number
        // to an Integer
        int octalNumber = Integer.parseInt(octalString);
  
        // returning the octal number
        return octalNumber;
    }
  
    // Driver Code
    public static void main(String[] args)
    {
  
        // instantiating the class
        GFG ob = new GFG();
  
        // calling and printing the decimalToOCtal
        // method
        System.out.println("octal number:"+ob.decimalToOctal(100100));
    }
}
輸出
octal number:44

方法二:

使用這種方法,我們首先將二進製數轉換為十進製數。然後,我們通過不斷提取餘數並除以 8 將這個十進製數轉換為八進製數。

算法:

  1. 將二進製數轉換為十進製數。
  2. 現在,對於這個轉換後的十進製數,運行一個 while 循環,直到這個數字變為 0。
  3. 在循環的每次迭代中,通過將數字除以 8 來獲得餘數。
  4. 將此餘數乘以 10 的遞增冪。
  5. 最後把原來的數除以8。

例:

Java


// Java program to convert binary to octal
  
class GFG {
  
    // function to convert binary number
    // to decimal number
    int binaryToDecimal(long binary)
    {
  
        // variable to store the converted
        // decimal number
        int decimalNumber = 0, i = 0;
  
        // loop to convert binary to decimal
        while (binary > 0) {
  
            // extracting every digit of the
            // binary and multiplying with
            // increasing powers of 2
            decimalNumber
                += Math.pow(2, i++) * (binary % 10);
  
            // dividing the number by 10
            // to remove the last digit
            binary /= 10;
        }
  
        // returning the converted decimal
        // number
        return decimalNumber;
    }
  
    // function to convert decimal number
    // to octal
    int decimalToOctal(long binary)
    {
  
        // variable to store the octal number
        int octalNumber = 0, i = 0;
  
        // variable to store the output
        // returned by the binaryToDecimal()
        int decimalNumber = binaryToDecimal(binary);
  
        // loop to convert decimal to octal
        while (decimalNumber != 0) {
  
            // extracting the remainder on
            // multiplying by 8 and
            // dividing that with increasing
            // powers of 10
            octalNumber += (decimalNumber % 8)
                           * ((int)Math.pow(10, i++));
  
            // removing the last digit by
            // dividing by 8
            decimalNumber /= 8;
        }
  
        // returning the converted octal number
        return octalNumber;
    }
  
    // Driver Code
    public static void main(String[] args)
    {
  
        // instantiating the class
        GFG ob = new GFG();
  
        // calling and printing the
        // decimalToOctal() function
        System.out.println(ob.decimalToOctal(1001001));
    }
}
輸出
111




相關用法


注:本文由純淨天空篩選整理自ag01harshit大神的英文原創作品 Java Program to Convert Binary to Octal。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。