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

Java中操作超大數(shù)的方法

 更新時(shí)間:2018年06月13日 08:14:44   投稿:laozhang  
本篇文章是小編在網(wǎng)上整理的關(guān)于java操作超大數(shù)的方法以及解決思路,有興趣的朋友參考學(xué)習(xí)下。

我們知道Integer的最大值是 2^31 - 1,Long最大值是 2^63 -1

不管是32位機(jī)還是64位機(jī)都是這樣

通常來說我們要操作一個(gè)大于 Integer最大值的數(shù)的時(shí)候會(huì)用 Long來進(jìn)行

但萬一我們遇到一個(gè)比 Long的最大值還大的數(shù)怎么辦呢?

BigInteger

這種情況還是會(huì)出現(xiàn)的,對(duì)于操作超大數(shù)的情況 Java提供了 BigInteger類,使用時(shí)需要實(shí)例化一個(gè) BigInteger對(duì)象,調(diào)用它的運(yùn)算方法進(jìn)行加減等操作。

下面舉個(gè)例子說明

操作 UUID

我們知道在Android設(shè)備中經(jīng)常用 anroid_id 來表示設(shè)備的唯一性

一般在安裝 app的之后第一次啟動(dòng)時(shí)會(huì)調(diào)用下面的代碼來生成一個(gè)設(shè)備編號(hào)

String private_id = Settings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);

然后把字符串通過持久化儲(chǔ)存放到文件系統(tǒng)或者數(shù)據(jù)庫中,日活等指標(biāo)都可以依據(jù)這個(gè)來標(biāo)識(shí)。

它的值通常是個(gè)十六進(jìn)制數(shù),比如

AF84C9117B6C98D2

把它轉(zhuǎn)成十進(jìn)制是

12647454730485537000

這已經(jīng)超出了Long最大值的范圍 9223372036854776000

然后我們想在原有 android_id的基礎(chǔ)上簡(jiǎn)單加密一下,比如加個(gè)隨機(jī)數(shù)上去什么的

String private_id = Settings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
BigInteger androidId = new BigInteger(private_id, 16);
Random random = new Random();
BigInteger result = androidId.add(new BigInteger(String.valueOf(random.nextInt(10000)), 10));
String hex = result.toString();

相關(guān)文章

  • Java中Flux類的使用方法和示例代碼

    Java中Flux類的使用方法和示例代碼

    在Java編程中Flux是一種處理響應(yīng)式編程的庫,它提供了一種異步數(shù)據(jù)流處理的方式,這篇文章主要給大家介紹了關(guān)于Java中Flux類的使用方法和示例代碼,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Java生成壓縮文件的實(shí)例代碼

    Java生成壓縮文件的實(shí)例代碼

    在工作過程中,需要將一個(gè)文件夾生成壓縮文件,然后提供給用戶下載。下面通過實(shí)例代碼給大家介紹Java生成壓縮文件的方法,感興趣的朋友一起看看吧
    2018-06-06
  • SpringCloud之動(dòng)態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn)

    SpringCloud之動(dòng)態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud 之動(dòng)態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • IDEA2022.2的簡(jiǎn)介、下載與安裝、配置教程

    IDEA2022.2的簡(jiǎn)介、下載與安裝、配置教程

    IDEA是JetBrains公司推出一個(gè)集成開發(fā)工具,是Java開發(fā)工具中的翹楚,基于這個(gè)開發(fā)工具可以快速開發(fā)我們的Java相關(guān)項(xiàng)目,本文重點(diǎn)給大家介紹IDEA2022.2的簡(jiǎn)介、下載與安裝、初步配置,感興趣的朋友一起看看吧
    2022-11-11
  • java多態(tài)性中的Overload和Override區(qū)別詳解

    java多態(tài)性中的Overload和Override區(qū)別詳解

    這篇文章主要介紹了java多態(tài)性中的Overload和Override區(qū)別詳解,重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個(gè)類中多態(tài)性的一種表現(xiàn),需要的朋友可以參考下
    2023-07-07
  • Java圖片讀取ImageIO.read()報(bào)錯(cuò)問題及解決

    Java圖片讀取ImageIO.read()報(bào)錯(cuò)問題及解決

    在使用imageio庫讀取圖片時(shí),如果路徑中包含中文,可能會(huì)導(dǎo)致讀取失敗,解決方法是將路徑中的中文字符進(jìn)行轉(zhuǎn)義處理,可以使用ImageUtil.java工具類進(jìn)行路徑轉(zhuǎn)義,從而避免錯(cuò)誤,這是一個(gè)常見問題,希望本文的解決方案能幫助到遇到相同問題的開發(fā)者
    2024-10-10
  • SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son

    SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son

    這篇文章主要介紹了SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • scala中常用特殊符號(hào)詳解

    scala中常用特殊符號(hào)詳解

    這篇文章主要介紹了scala中常用特殊符號(hào)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • java基礎(chǔ)之泛型知識(shí)點(diǎn)總結(jié)

    java基礎(chǔ)之泛型知識(shí)點(diǎn)總結(jié)

    這篇文章主要介紹了java基礎(chǔ)之泛型知識(shí)點(diǎn)總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringBoot+Mybatis plus實(shí)現(xiàn)多數(shù)據(jù)源整合的實(shí)踐

    SpringBoot+Mybatis plus實(shí)現(xiàn)多數(shù)據(jù)源整合的實(shí)踐

    本文主要介紹了SpringBoot+Mybatis plus實(shí)現(xiàn)多數(shù)據(jù)源整合的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論

科技| 姜堰市| 清河县| 聊城市| 托克逊县| 乌审旗| 张家港市| 邵武市| 呼和浩特市| 宁南县| 登封市| 普宁市| 句容市| 广汉市| 繁昌县| 太谷县| 金昌市| 夏邑县| 敖汉旗| 胶南市| 格尔木市| 莱芜市| 房产| 宁南县| 千阳县| 宝山区| 余庆县| 营口市| 苍溪县| 永吉县| 区。| 临泉县| 渑池县| 屯门区| 常州市| 锦州市| 霸州市| 阳信县| 固镇县| 大洼县| 伽师县|