Java實(shí)現(xiàn)二進(jìn)制與十進(jìn)制之間互相轉(zhuǎn)換的完整代碼
,需要的朋友可以參考下
在編程中,數(shù)制轉(zhuǎn)換是一個(gè)非常常見的需求。Java 作為一種高級(jí)語言,提供了便捷的方法來實(shí)現(xiàn) 二進(jìn)制(Binary) 和 十進(jìn)制(Decimal) 之間的轉(zhuǎn)換。本文將介紹 Java 中二進(jìn)制與十進(jìn)制互轉(zhuǎn)的原理與實(shí)現(xiàn)方式,并附上完整代碼示例。
一、十進(jìn)制轉(zhuǎn)二進(jìn)制
1.1 原理
十進(jìn)制轉(zhuǎn)二進(jìn)制的方法通常有兩種:
- 手動(dòng)除以 2 取余法:不斷將十進(jìn)制數(shù)除以 2,將余數(shù)倒序排列。
- 使用 Java 提供的封裝方法:
Integer.toBinaryString(int i)
1.2 示例代碼
public class DecimalToBinary { public static void main(String[] args) { int decimal = 42; String binary = Integer.toBinaryString(decimal); System.out.println("十進(jìn)制 " + decimal + " 轉(zhuǎn)換為二進(jìn)制為: " + binary); } }
輸出:
十進(jìn)制 42 轉(zhuǎn)換為二進(jìn)制為: 101010
二、二進(jìn)制轉(zhuǎn)十進(jìn)制
2.1 原理
- 將二進(jìn)制字符串按照權(quán)展開(即 $2^n$)求和。
- Java 中可以使用
Integer.parseInt(String s, int radix)
方法進(jìn)行轉(zhuǎn)換。
2.2 示例代碼
public class BinaryToDecimal { public static void main(String[] args) { String binary = "101010"; int decimal = Integer.parseInt(binary, 2); System.out.println("二進(jìn)制 " + binary + " 轉(zhuǎn)換為十進(jìn)制為: " + decimal); } }
輸出:
二進(jìn)制 101010 轉(zhuǎn)換為十進(jìn)制為: 42
三、完整示例:交互式轉(zhuǎn)換器
import java.util.Scanner; public class BinaryDecimalConverter { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請(qǐng)選擇操作:"); System.out.println("1. 十進(jìn)制轉(zhuǎn)二進(jìn)制"); System.out.println("2. 二進(jìn)制轉(zhuǎn)十進(jìn)制"); int choice = scanner.nextInt(); if (choice == 1) { System.out.print("請(qǐng)輸入十進(jìn)制數(shù)字: "); int decimal = scanner.nextInt(); String binary = Integer.toBinaryString(decimal); System.out.println("轉(zhuǎn)換后的二進(jìn)制為: " + binary); } else if (choice == 2) { System.out.print("請(qǐng)輸入二進(jìn)制數(shù)字: "); String binary = scanner.next(); try { int decimal = Integer.parseInt(binary, 2); System.out.println("轉(zhuǎn)換后的十進(jìn)制為: " + decimal); } catch (NumberFormatException e) { System.out.println("輸入的不是有效的二進(jìn)制數(shù)字!"); } } else { System.out.println("無效的選擇!"); } scanner.close(); } }
四、總結(jié)
類型 | Java 方法 | 示例 |
---|---|---|
十進(jìn)制轉(zhuǎn)二進(jìn)制 | Integer.toBinaryString(int) | Integer.toBinaryString(42) → 101010 |
二進(jìn)制轉(zhuǎn)十進(jìn)制 | Integer.parseInt(str, 2) | Integer.parseInt("101010", 2) → 42 |
Java 提供的這些工具方法極大地簡化了進(jìn)制轉(zhuǎn)換操作。在實(shí)際開發(fā)中,你也可以擴(kuò)展思路處理其他進(jìn)制之間的轉(zhuǎn)換,比如八進(jìn)制、十六進(jìn)制等。
如需進(jìn)一步擴(kuò)展為支持其他進(jìn)制(例如十六進(jìn)制轉(zhuǎn)二進(jìn)制等),也可以繼續(xù)使用 Integer.toString(int num, int radix)
與 Integer.parseInt(String str, int radix)
進(jìn)行靈活轉(zhuǎn)換。
以上就是Java實(shí)現(xiàn)二進(jìn)制與十進(jìn)制之間互相轉(zhuǎn)換的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于Java二進(jìn)制與十進(jìn)制互轉(zhuǎn)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JAVA WSIMPORT生成WEBSERVICE客戶端401認(rèn)證過程圖解
這篇文章主要介紹了JAVA WSIMPORT生成WEBSERVICE客戶端401認(rèn)證過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10servlet實(shí)現(xiàn)文件上傳、預(yù)覽、下載、刪除功能
這篇文章主要為大家詳細(xì)介紹了servlet實(shí)現(xiàn)文件上傳、預(yù)覽、下載、刪除功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09SpringBoot使用Caffeine實(shí)現(xiàn)內(nèi)存緩存示例詳解
caffeine提供了四種緩存策略:分別為手動(dòng)加載、自動(dòng)加載、異步手動(dòng)加載、異步自動(dòng)加載,這篇文章主要介紹了SpringBoot使用Caffeine實(shí)現(xiàn)內(nèi)存緩存,需要的朋友可以參考下2023-06-06改善Java代碼之慎用java動(dòng)態(tài)編譯
這篇文章主要介紹了改善Java代碼之慎用java動(dòng)態(tài)編譯,需要的朋友可以參考下2021-04-04java以json格式向后臺(tái)服務(wù)器接口發(fā)送請(qǐng)求的實(shí)例
下面小編就為大家分享一篇java以json格式向后臺(tái)服務(wù)器接口發(fā)送請(qǐng)求的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01IntelliJ IDEA 2020.3 重大特性(新功能一覽)
這篇文章主要介紹了IntelliJ IDEA 2020.3 重大特性(新功能一覽),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12