国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java中操作超大數的方法

2024-07-14 08:41:14
字體:
來源:轉載
供稿:網友

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

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

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

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

BigInteger

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

下面舉個例子說明

操作 UUID

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

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

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

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

它的值通常是個十六進制數,比如

AF84C9117B6C98D2

把它轉成十進制是

12647454730485537000

這已經超出了Long最大值的范圍 9223372036854776000

然后我們想在原有 android_id的基礎上簡單加密一下,比如加個隨機數上去什么的

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();


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷州市| 宜宾县| 鲁山县| 莱西市| 砀山县| 宾阳县| 启东市| 上虞市| 延吉市| 灵石县| 濉溪县| 瓮安县| 舒城县| 乐清市| 阳春市| 太保市| 鄂托克旗| 内丘县| 游戏| 秦安县| 扎囊县| 尉氏县| 驻马店市| 平南县| 旌德县| 屯门区| 祁阳县| 新巴尔虎左旗| 成都市| 陈巴尔虎旗| 台中市| 石狮市| 定陶县| 什邡市| 无为县| 淮安市| 中江县| 临清市| 萨嘎县| 伊川县| 汾阳市|