国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 公主岭市| 青铜峡市| 东至县| 新兴县| 曲阳县| 鸡东县| 原阳县| 神农架林区| 宜兴市| 集安市| 清水县| 台山市| 渑池县| 安平县| 湄潭县| 文水县| 抚顺市| 湖口县| 宝兴县| 新野县| 阳城县| 成都市| 孝义市| 阿城市| 禹州市| 武宣县| 南开区| 黄山市| 莱西市| 佳木斯市| 兴宁市| 哈尔滨市| 延边| 二手房| 达孜县| 崇义县| 尖扎县| 海伦市| 卢湾区| 如皋市| 郸城县|