• <del id="a8uas"></del>
    • 千鋒教育-做有情懷、有良心、有品質的職業教育機構

      400-811-9990
      手機站
      千鋒教育

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

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

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

      上海
      • 北京
      • 鄭州
      • 武漢
      • 成都
      • 西安
      • 沈陽
      • 廣州
      • 南京
      • 深圳
      • 大連
      • 青島
      • 杭州
      • 重慶
      當前位置:合肥千鋒IT培訓  >  技術干貨  >  大整數類型和一般的整數類型相比各有什么優劣?

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

      來源:千鋒教育
      發布人:xqq
      時間: 2023-10-17 14:51:09

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

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

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

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

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

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

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

      延伸閱讀:

      二、大整數BigInteger

      import java.math.BigInteger;

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

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

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

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

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

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

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

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

      聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

      猜你喜歡LIKE

      web前端會用到哪些軟件工具?

      2023-10-17

      java/Python這么火,c++這么難,為什么我們還要選擇用C++?

      2023-10-17

      app開發的制作為什么報價和開發周期都不一樣?

      2023-10-17

      最新文章NEW

      對數量龐大的照片進行分類管理,較好的方便檢索的方法是什么?

      2023-10-17

      PHP中的interface有什么用處?

      2023-10-17

      PHP有哪些運行環境?

      2023-10-17

      相關推薦HOT

      更多>>

      快速通道 更多>>

      最新開班信息 更多>>

      網友熱搜 更多>>