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

編程中怎麼定義實型

發布時間: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:

閱讀全文

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

熱點內容
文件系統壞了怎麼辦 瀏覽:261
小公司網路布線 瀏覽:515
怎麼用二維碼編程 瀏覽:341
f9b文件能用手機看嗎 瀏覽:364
手機暴風視頻文件夾 瀏覽:394
vsftpdlinux下載文件 瀏覽:948
文件名修改後快捷方式還可以用嗎 瀏覽:387
親密愛人qq相冊名字 瀏覽:884
怎麼修改手機原始密碼 瀏覽:230
榆次網站優化怎麼樣 瀏覽:537
vb窗體文件如何打開 瀏覽:810
百度找圖怎麼跳轉網站 瀏覽:284
安卓44如何隱藏文件夾 瀏覽:92
sr100怎麼編程序 瀏覽:795
蘋果手機怎樣保存信息 瀏覽:379
安卓patch是什麼文件 瀏覽:819
2003word審閱 瀏覽:387
手機時間查找新文件 瀏覽:695
資料庫管理員怎麼入行 瀏覽:852
安卓nba2k17修改能力 瀏覽:868

友情鏈接