欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

不管是32位機還是64位機都是這樣

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

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

BigInteger

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

下面舉個例子說明

操作 UUID

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

一般在安裝 app的之后第一次啟動時會調(diào)用下面的代碼來生成一個設備編號

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

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

它的值通常是個十六進制數(shù),比如

AF84C9117B6C98D2

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

12647454730485537000

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

然后我們想在原有 android_id的基礎上簡單加密一下,比如加個隨機數(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();

相關文章

  • springboot登錄攔截器+ThreadLocal實現(xiàn)用戶信息存儲的實例代碼

    springboot登錄攔截器+ThreadLocal實現(xiàn)用戶信息存儲的實例代碼

    ThreadLocal 為變量在每個線程中創(chuàng)建了一個副本,這樣每個線程都可以訪問自己內(nèi)部的副本變量,這篇文章主要介紹了springboot登錄攔截器+ThreadLocal實現(xiàn)用戶信息存儲的實例代碼,需要的朋友可以參考下
    2024-03-03
  • Spring Boot打jar包后配置文件的外部優(yōu)化配置方法

    Spring Boot打jar包后配置文件的外部優(yōu)化配置方法

    這篇文章主要介紹了Spring Boot打jar包后配置文件的外部優(yōu)化配置方法,需要的朋友可以參考下
    2018-02-02
  • JAVA實現(xiàn)單例模式的四種方法和一些特點

    JAVA實現(xiàn)單例模式的四種方法和一些特點

    JAVA實現(xiàn)單例模式的四種方法和一些特點,需要的朋友可以參考一下
    2013-03-03
  • Java語言Lang包下常用的工具類介紹

    Java語言Lang包下常用的工具類介紹

    這篇文章主要介紹了Java語言Lang包下常用的工具類介紹,次奧變覺得挺不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • Java多線程中的Future類詳細解讀

    Java多線程中的Future類詳細解讀

    這篇文章主要介紹了Java多線程中的Future類詳細解讀,Future表示一個可能還沒有完成的異步任務的結(jié)果,針對這個結(jié)果可以添加Callback以便在任務執(zhí)行成功或失敗后作出相應的操作,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)飛機大戰(zhàn)游戲?附完整源碼

    Java實現(xiàn)飛機大戰(zhàn)游戲?附完整源碼

    這篇文章主要介紹了Java實現(xiàn)飛機大戰(zhàn)游戲,本文給大家分享完整源代碼和效果圖展示,對java飛機大戰(zhàn)游戲?qū)崿F(xiàn)代碼感興趣的朋友一起看看吧
    2022-05-05
  • 詳解Java事件編程的使用

    詳解Java事件編程的使用

    Java事件在很多地方都可以使用,合理的使用事件編程,相比常規(guī)邏輯的編程,這可達到主次分明,讓程序吞吐量即處理能力更強,改動更少,下面我們舉一個例子說明如何使用Java使用,需要的朋友可以參考下
    2021-06-06
  • 基于Spring中的線程池和定時任務功能解析

    基于Spring中的線程池和定時任務功能解析

    下面小編就為大家?guī)硪黄赟pring中的線程池和定時任務功能解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java使用httpRequest+Jsoup爬取紅藍球號碼

    Java使用httpRequest+Jsoup爬取紅藍球號碼

    本文將結(jié)合實例代碼,介紹Java使用httpRequest+Jsoup爬取紅藍球號碼,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • Java中關鍵字synchronized的使用方法詳解

    Java中關鍵字synchronized的使用方法詳解

    synchronized關鍵字可以作為函數(shù)的修飾符,也可作為函數(shù)內(nèi)的語句,也就是平時說的同步方法和同步語句塊,下面這篇文章主要給大家介紹了關于Java中synchronized使用的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論