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

編程中怎麼定義實型

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

閱讀全文

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

熱點內容
微信上鏈接在哪個文件夾 瀏覽:691
歐姆龍安裝打開找不到密鑰文件 瀏覽:302
蘋果基本表情 瀏覽:128
我的世界教育版編程在哪裡 瀏覽:842
pong文件夾找不到 瀏覽:759
69版本黑切 瀏覽:997
杭州道富java 瀏覽:635
知道qq號查微博賬號和密碼 瀏覽:294
紅手指自帶哪些app 瀏覽:103
手機用公司網路會被監控哪些 瀏覽:409
什麼叫py編程 瀏覽:370
微信紅包尾數作弊器ios 瀏覽:280
ipad備份文件夾 瀏覽:555
vivo手機qq下載的文件在哪裡 瀏覽:303
如何導出ug的編程檔 瀏覽:343
編程課如何提到游戲 瀏覽:430
微信里怎麼幫別人集贊 瀏覽:20
靈犀語音motox鎖屏密碼 瀏覽:336
w7怎麼添加網路列印機 瀏覽:463
國家商品數據哪裡查詢 瀏覽:154

友情鏈接