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

編程中怎麼定義實型

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

閱讀全文

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

熱點內容
神州a460設置開機密碼 瀏覽:615
linux更改系統版本 瀏覽:463
美行車載導航路徑文件 瀏覽:417
如何搭建網站的用戶中心 瀏覽:424
u大師找不到isos鏡像文件 瀏覽:408
小象編程的草稿都存在哪裡 瀏覽:877
重要文件關機後找不到了怎麼辦 瀏覽:293
如何將資料庫文件導出為excel 瀏覽:654
怎麼找到壓縮文件夾位置 瀏覽:647
pe模式找不到安裝文件 瀏覽:858
iphone6s設置開機密碼 瀏覽:783
now直播16版本 瀏覽:330
把文件夾拖到u盤找不到了 瀏覽:549
蘋果手機桌面文件夾怎麼刪除怎麼恢復軟體 瀏覽:179
win10文件多大 瀏覽:518
買羽毛球裝備用哪個app 瀏覽:202
豪華釣魚安卓版 瀏覽:787
jquery將對象轉成json 瀏覽:379
編程語言怎麼學最好 瀏覽:833
中走絲怎麼編程速度快 瀏覽:647

友情鏈接