筆者曾就職與華為,騰訊,samsung,是一個資深碼農,歡迎大家關注,轉發
我們知道Integer的最大值是2^31-1,Long最大值是2^63-1,
不管是32位機還是64位機都是這樣,
通常來說我們要操作一個大于Integer最大值的數的時候會用Long來進行,
但萬一我們遇到一個比Long的最大值還大的數怎么辦呢?
這種情況還是會出現的,對于操作超大數的情況Java提供了BigInteger類,
使用時需要實例化一個BigInteger對象,調用它的運算方法進行加減等操作。
下面舉個例子說明
我們知道在Android設備中經常用anroid_id來表示設備的唯一性,
一般在安裝app的之后第一次啟動時會調用下面的代碼來生成一個設備編號,
Stringprivate_id=Settings.Secure.getString(getContext().getContentResolver(),Settings.Secure.ANDROID_ID);
然后把字符串通過持久化儲存放到文件系統或者數據庫中,日活等指標都可以依據這個來標識。
它的值通常是個十六進制數,比如
AF84C9117B6C98D2
把它轉成十進制是
12647454730485537000
這已經超出了Long最大值的范圍9223372036854776000,
然后我們想在原有android_id的基礎上簡單加密一下,比如加個隨機數上去什么的,