国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 大整數類型和一般的整數類型相比各有什么優劣?

大整數類型和一般的整數類型相比各有什么優劣?

來源:千鋒教育
發布人:xqq
時間: 2023-10-11 06:22:59 1696976579

一、大整數類型和一般的整數類型相比

大整數類型和一般的整數類型相比優點是不會溢出,能表示任意長度的數字做各種精度的運算。

缺點是沒有直接的類型運算支持,必須像人類計算一樣按位數分別計算進行借位/進位操作。。好在現在常用語言比如Java已經內置大數庫,不用重復造輪子了。硬件:不直接支持運算,效率低下?,F在的主流計算機通常都是以寄存器為單位進行運算,在這種架構上實現大數運算一般都要從內存讀取后操作,如果存在大量隨機讀寫大數的情況,性能甚至可能下降幾十到上百倍。

普通整數:優缺點剛好和大整數反過來,簡單快,但是會存在溢出和精度丟失問題。

為什么不做自動類型提升?因為很難做啊。首先要知道溢出是一個運行時才能完全確定的問題,那么:對于類型確定的語言根本做不到,因為類型在編譯期間已經確定,除非重新設計一個功能更強大的編譯器。對于無類型的語言,也許可以通過把所有數都存在內存并且設置長度與類型標志位的方法來達到類似的效果,但是這樣程序效率一定會大大降低,并且解釋器會變得更復雜,同時會引入一套新的數據解析規則,很多庫也許都需要重寫。

既然要做無限制的提升,那么數據就不能放在寄存器中,同時還必須設計一套能夠在自動提升/降低時能夠自動申請/釋放內存的方案,同時還必須兼顧性能……

綜上所述,具備設計開發強于GCC/LLVM等靜態編譯器,開發高效解釋語言庫,能完美解決Java的GC問題的人,才能解決這個問題。

延伸閱讀:

二、大整數BigInteger

import java.math.BigInteger;

首先,對于初始化則不像基本類型包裝這塊講著3種方式,這里只剩下valueOf() 可以對其初始化。

接著,大整數變量不能使用算術運算符,需要通過以下方法進行運算:

add():取代了加法運算符“+”;

subtract():取代了減法運算符“-”;

multiply():取代了乘法運算符“*”;

divide():取代了除法運算符“/”;

remainder():取代了取余運算符“%”;

negate():取代了負號運算符“-”。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT