最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)十進制與二進制互轉(zhuǎn)的示例詳解

 更新時間:2022年11月22日 17:12:12   作者:三省同學(xué)  
這篇文章主要為大家詳細介紹了Java如何實現(xiàn)十進制與二進制的互轉(zhuǎn),文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下

十進制轉(zhuǎn)二進制

正整數(shù)轉(zhuǎn)二進制

除2取余,逆序排列,高位補零。

示例:

十進制255 = 二進制1111 1111

計算過程:

255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1

小數(shù)轉(zhuǎn)換成二進制

乘2取整,順序排列。

十進制0.625 = 二進制0.101

計算過程:

0.625*2=1.25======取出整數(shù)部分1
0.25*2=0.5========取出整數(shù)部分0
0.5*2=1==========取出整數(shù)部分1

代碼實現(xiàn)

Java類實現(xiàn):

System.out.println(new BigInteger("255", 10).toString(2));

自定義實現(xiàn):

public static void main(String[] args) {
    System.out.print("輸入一個十進制數(shù):");
    Scanner s = new Scanner(System.in);
    int num = s.nextInt();
    String result = "";
    for (int i = num; i > 0; i /= 2) {
        result = i % 2 + result;
    }
    System.out.println(result);
}

二進制轉(zhuǎn)十進制

小數(shù)點前或者整數(shù)要從右到左用二進制的每個數(shù)去乘以2的相應(yīng)次方并遞增,小數(shù)點后則是從左往右乘以二的相應(yīng)負次方并遞減。

示例:

二進制數(shù)1101.01轉(zhuǎn)化成十進制

計算過程:

1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)

代碼實現(xiàn)

Java類實現(xiàn):

Integer.parseInt("1111",2);

自定義實現(xiàn):

public static void main(String[] args) {
    System.out.print("輸入一個二進制數(shù):");
    Scanner scanner = new Scanner(System.in);
    int binaryNumber = scanner.nextInt();
    int decimal = 0;
    int p = 0;

    while (true) {
        if (binaryNumber == 0) {
            break;
        } else {
            int temp = binaryNumber % 10;
            decimal += temp * Math.pow(2, p);
            binaryNumber = binaryNumber / 10;
            p++;
        }
    }
    System.out.println(decimal);
}

BigInteger

概念

在Java中,由CPU原生提供的整型最大范圍是64位long型整數(shù)。使用long型整數(shù)可以直接通過CPU指令進行計算,速度非??臁?/p>

如果我們使用的整數(shù)范圍超過了long型怎么辦?

這里就引入我們要了解的主角BigInteger。

java.math.BigInteger就是用來表示任意大小的整數(shù)。BigInteger內(nèi)部用一個int[]數(shù)組來模擬一個非常大的整數(shù):

運用

如果不借助BigInteger類,當你需要運算9999999999999999的6次方,你敢想嗎?或者還又哪些辦法

BigInteger bi = new BigInteger("9999999999999999");
System.out.println(bi.pow(6));

結(jié)果:

999999999999999400000000000000149999999999999980000000000000001499999999999999940000000000000001

如果在瘋狂點?結(jié)果是多少?

BigInteger bi = new BigInteger("999999999999999999");
System.out.println(bi.pow(999999999));

BigInteger和Integer、Long一樣,也是不可變類,并且也繼承自Number類。因為Number定義了轉(zhuǎn)換為基本類型的幾個方法:

  • 轉(zhuǎn)換為byte:byteValue()
  • 轉(zhuǎn)換為short:shortValue()
  • 轉(zhuǎn)換為int:intValue()
  • 轉(zhuǎn)換為long:longValue()
  • 轉(zhuǎn)換為float:floatValue()
  • 轉(zhuǎn)換為double:doubleValue()

通過上述方法,可以把BigInteger轉(zhuǎn)換成基本類型。如果BigInteger表示的范圍超過了基本類型的范圍,轉(zhuǎn)換時將丟失高位信息,即結(jié)果不一定是準確的。如果需要準確地轉(zhuǎn)換成基本類型,可以使用intValueExact()、longValueExact()等方法,在轉(zhuǎn)換時如果超出范圍,將直接拋出ArithmeticException異常。 

到此這篇關(guān)于Java實現(xiàn)十進制與二進制互轉(zhuǎn)的示例詳解的文章就介紹到這了,更多相關(guān)Java十進制二進制互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)AOP面向切面編程的實例教程

    Java實現(xiàn)AOP面向切面編程的實例教程

    這篇文章主要介紹了Java實現(xiàn)AOP面向切面編程的實例教程,通常Java中的AOP都是利用Spring框架中造好的輪子來開發(fā),而本文則關(guān)注于Java本身AOP的設(shè)計模式實現(xiàn),需要的朋友可以參考下
    2016-04-04
  • java 實現(xiàn)雙向鏈表實例詳解

    java 實現(xiàn)雙向鏈表實例詳解

    這篇文章主要介紹了java 實現(xiàn)雙向鏈表實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • spring boot 2整合swagger-ui過程解析

    spring boot 2整合swagger-ui過程解析

    這篇文章主要介紹了spring boot 2整合swagger-ui過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • eclipse部署tomcat服務(wù)器無法啟動問題的解決方法

    eclipse部署tomcat服務(wù)器無法啟動問題的解決方法

    這篇文章主要為大家詳細介紹了eclipse部署tomcat服務(wù)器無法啟動問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java maven中如何引入自己的lib

    java maven中如何引入自己的lib

    在JavaMaven項目中引入自己的庫可以簡化為幾個步驟:首先,確保庫以JAR格式存在或打包成JAR;其次,將JAR文件放置在項目目錄或安裝到本地Maven倉庫;最后,在pom.xml中添加依賴,這樣做可以使項目更加模塊化,便于管理和維護,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Java并發(fā)編程之Executors類詳解

    Java并發(fā)編程之Executors類詳解

    今天給大家?guī)淼氖顷P(guān)于Java并發(fā)編程的相關(guān)知識,文章圍繞著Java Executors類展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot接收參數(shù)所有方式總結(jié)

    SpringBoot接收參數(shù)所有方式總結(jié)

    這篇文章主要介紹了SpringBoot接收參數(shù)所有方式總結(jié),文中通過代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • 過濾器 和 攔截器的 6個區(qū)別(別再傻傻分不清了)

    過濾器 和 攔截器的 6個區(qū)別(別再傻傻分不清了)

    這篇文章主要介紹了過濾器 和 攔截器的 6個區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • MyBatis-Plus將字段修改為空值的解決方案

    MyBatis-Plus將字段修改為空值的解決方案

    這篇文章主要介紹了MyBatis-Plus將字段修改為空值的解決方案,本文給大家分享三種常用的解決方案,感興趣的朋友一起看看吧
    2023-12-12
  • Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,下面我們就來學(xué)習(xí)一下EasyExcel如何實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式吧
    2023-11-11

最新評論

玉门市| 双鸭山市| 灌云县| 桦川县| 康马县| 武汉市| 武汉市| 云林县| 建瓯市| 渝中区| 大同县| 千阳县| 循化| 翁源县| 元阳县| 怀仁县| 中山市| 浪卡子县| 土默特右旗| 夏津县| 衡东县| 南靖县| 耒阳市| 安丘市| 天津市| 麟游县| 长武县| 宜州市| 四平市| 治多县| 肇庆市| 高淳县| 榕江县| 濮阳市| 岢岚县| 商水县| 龙胜| 赤水市| 深水埗区| 广河县| 阿克|