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

編程中怎麼定義實型

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

閱讀全文

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

熱點內容
文件拷貝到u盤以後md5變化 瀏覽:281
kali中pdf攻擊文件生成 瀏覽:507
專利檢索如何找到最接近對比文件 瀏覽:673
文件描述符inode 瀏覽:342
ps多邊形套索工具摳圖 瀏覽:957
u盤文件怎樣加密 瀏覽:431
如何將多個pdf文件合成一個 瀏覽:652
桌面文件隱藏圖片 瀏覽:204
word分44 瀏覽:521
信息網路通訊研究所是研究什麼的 瀏覽:602
簡述創建資料庫的過程 瀏覽:607
手機上哪些自帶文件不能刪 瀏覽:474
濟南java程序員工資 瀏覽:643
網路優化主要有 瀏覽:140
sip文件如何打開 瀏覽:87
為什麼那麼多編程語言都是外國的 瀏覽:736
蘋果7描述文件怎麼下載地址 瀏覽:433
電腦刷新一下文件圖標變成空白 瀏覽:68
smartdraw使用教程 瀏覽:257
dnf90版本劍宗流派 瀏覽:856

友情鏈接