Java 十進位制轉換為二進位制程式


數制有四種類型:二進位制、八進位制、十進位制和十六進位制,其基數分別為 2、8、10 和 16。基數取決於數制中包含的數字數量。例如,十六進位制數制包含 16 個數字,即 0 到 9 和 A 到 F。因此,其基數為 16。

在本文中,我們將討論二進位制和十進位制數制。此外,我們將編寫 Java 程式來將十進位制數轉換為二進位制數。

二進位制和十進位制數制

二進位制數制

二進位制數制以 0 和 1 的形式工作。因為它只有兩個數字 0 和 1,因此其基數為 2。在電訊號方面,這兩個位元表示真和假或開和關狀態。(101)2、(011)2、(111)2 是二進位制數的一些示例。

通常,它用於數字裝置,如計算機、智慧手機、智慧手錶。事實上,它是數字裝置上執行的所有操作的基礎。

十進位制數制

這是最常用的數制。它有 10 個數字,從 0 到 9。因此,其基數為 10。如果未提及數字的基數,則將其視為 10。單個數字的權重為 10 的冪,並且每個數字的權重都比前一個數字高 10 倍。例如,1010、43110、98010 等。

下表顯示了前 15 個數字的二進位制和十進位制格式 -

二進位制

十進位制

0001

1

0010

2

0011

3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

1010

10

1011

11

1100

12

1101

13

1110

14

1111

15

在上表中,二進位制數以 4 位格式表示。

十進位制轉換為二進位制

讓我們瞭解如何將十進位制數轉換為二進位制數。

我們透過將十進位制數除以二進位制的基數(即 2),直到商為 1,從而將十進位制格式轉換為二進位制格式。換句話說,我們將一直除以給定的十進位制數,直到該數大於 0。

示例 1

將十進位制數 (23)10 轉換為其二進位制形式。

答案是 10111。

現在,我們將看到 Java 程式,在其中我們將應用上述邏輯將十六進位制轉換為十進位制。

方法 1:使用 toBinaryString() 方法

它是 'Integer' 類的靜態方法,根據基數 2 返回一個字串值。它在 java.lang 包中可用。

語法

Integer.toBinaryString(int var_to_convert);  

引數

  • Var_to_convert:要轉換的值。

在以下方法中,我們將建立一個建構函式 'Cnvrt()' 以及一個整數型別的引數 'dec'。在這個建構函式中,我們將執行轉換並將值儲存在一個字串 'b1' 中。在主方法中,我們將建立類 'Cnvrt' 的一個物件,以便我們可以使用不同的值呼叫建構函式。

示例

public class Cnvrt {
   String Cnvrt(int dec) { 
      // Constructor
      String b1 = Integer.toBinaryString(dec);
      return b1; 
      // returing the string stored in b1
   }
   public static void main(String args[]) {
      Cnvrt obj = new Cnvrt();  
      // creating object ‘obj’
      // calling the constructor using object with arguments
      System.out.println("Binary value of given decimal number: " + obj.Cnvrt(50)); 
      System.out.println("Binary value of given decimal number: " + obj.Cnvrt(25));
      System.out.println("Binary value of given decimal number: " + obj.Cnvrt(10));
   }
}

輸出

Binary value of given decimal number: 110010
Binary value of given decimal number: 11001
Binary value of given decimal number: 1010

方法 2:使用我們的自定義邏輯

在這種方法中,我們將建立四個整數變數 -

  • “dec” 帶有十進位制值

  • “b1” 用於儲存轉換後的二進位制數

  • “rem” 用於儲存餘數

  • “rev” 將在以相反順序列印餘數時使用

我們將使用一個 while 迴圈,並執行它直到十進位制值變為 1。在這個迴圈中,我們將進行除法並存儲餘數。之後,我們將反轉餘數。

示例

public class Cnvrt {
   public static void main(String[] args) {
      int dec = 23;
      int b1 = 0;
      int rem;
      int rev = 1;
      while (dec > 0) {
         rem = dec % 2; 
         // storing remainder
         dec = dec / 2;  
         // dividing the given decimal value
         b1 = b1 + rem * rev; 
         // reversing the remainders and storing it
         rev = rev * 10;
      }
      System.out.println("Binary value of given decimal number: " + b1);
   }
}

輸出

Binary value of given decimal number: 10111

結論

在本文中,我們瞭解了數制的型別,特別是二進位制和十進位制數制。此外,我們討論了兩種編寫 Java 程式以將十進位制數轉換為二進位制數的方法。

更新於: 2023 年 5 月 2 日

4K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告