導航:首頁 > 編程知識 > 編程中怎麼定義實型

編程中怎麼定義實型

發布時間:2023-09-02 19:27:27

㈠ 電腦編程中實型和整型有什麼區別

在python2時代,整型有 int 類型和 long 長整型,長整型不存在溢出問題,即可以存放任意大小的整數。在python3後,統一使用了長整型。這也是吸引科研人員的一部分了,適合大數據運算,不會溢出,也不會有其他語言那樣還分短整型,整型,長整型...因此python就降低其他行業的學習門檻了。

那麼,不溢出的整型實現上是否可行呢?

不溢出的整型的可行性
盡管在 C 語言中,整型所表示的大小是有范圍的,但是 python 代碼是保存到文本文件中的,也就是說,python代碼中並不是一下子就轉化成 C 語言的整型的,我們需要重新定義一種數據結構來表示和存儲我們新的「整型」。

怎麼來存儲呢,既然我們要表示任意大小,那就得用動態的可變長的結構,顯然,數組的形式能夠勝任:

[longintrepr.h]
struct _longobject {
PyObject_VAR_HEAD
int *ob_digit;
};

長整型的保存形式
長整型在python內部是用一個 int 數組( ob_digit[n] )保存值的. 待存儲的數值的低位信息放於低位下標, 高位信息放於高下標.比如要保存 123456789 較大的數字,但我們的int只能保存3位(假設):

ob_digit[0] = 789;
ob_digit[1] = 456;
ob_digit[2] = 123;
低索引保存的是地位,那麼每個 int 元素保存多大的數合適?有同學會認為數組中每個int存放它的上限(2^31 - 1),這樣表示大數時,數組長度更短,更省空間。但是,空間確實是更省了,但操作會代碼麻煩,比方大數做乘積操作,由於元素之間存在乘法溢出問題,又得多考慮一種溢出的情況。

怎麼來改進呢?在長整型的 ob_digit 中元素理論上可以保存的int類型有 32 位,但是我們只保存 15位,這樣元素之間的乘積就可以只用 int 類型保存即可, 對乘積結果做位移操作就能得到尾部和進位 carry了,因此定義位移長度為 15:

閱讀全文

與編程中怎麼定義實型相關的資料

熱點內容
為什麼南寧app不能查公積金了 瀏覽:849
微信秒加人 瀏覽:351
數控車R3半圓弧怎麼編程序 瀏覽:351
網路互聯設備ppt 瀏覽:881
蘋果5s更新後通訊錄怎麼都沒了 瀏覽:691
如何讓一列數據每個都加一個空格 瀏覽:684
怎麼修改excel自動恢復文件位置 瀏覽:73
怎麼在查看寬頻密碼 瀏覽:4
哪個廠需要數據統計 瀏覽:166
5s出現黑蘋果手機 瀏覽:829
不能插u盤不能上網怎麼傳文件 瀏覽:946
怎麼用編程求一個數的因子 瀏覽:64
幻影粒子圖文教程 瀏覽:899
mp3音樂播放器里有哪些文件夾 瀏覽:346
國內主流資料庫網站 瀏覽:941
移動硬碟文件夾許可權設置 瀏覽:761
雨林木風win732位安裝教程 瀏覽:234
怎樣開啟數據網路連接不上 瀏覽:586
安卓logo多少錢 瀏覽:282
為什麼app出現購買 瀏覽:583

友情鏈接