在計算機中,如何表示很大的數字?

時間 2021-06-04 12:12:19

1樓:朝辭白帝彩雲間

8bit的儲存可以用最後一位表示後面是否還有資料。用0000 001 0表示1,用0100 000 1表示後面還有資料,後面的資料是0000 100 0,所以最後表示0100 000 0000 100。只有變長的資料才能表示無窮。

固定長度的資料不可能。

2樓:

計算機的什麼32位整形變數,只是一種為你預先整合優化好的功能。硬體上有專用的32位加法器,匯流排也是32位/64位的,彙編層面有專門呼叫加法器的指令,高階語言原生整合了32位int型變數的各類運算。

32位int不夠用?反正在計算機裡都是***一串串行,你所要做的就是把那些幫你整合好的功能全部甩開,自己寫一套對二進位制串的處理方法而已。怎麼做隨便,只要能執行。

樓上的四精度數巧妙的化用了已經整合過的32位運算。

如果不爽,非要用稀奇古怪的陣列乙個乙個存0、1,最後赤手空拳的用布林代數模擬底層的與或非運算,可以啊,效率也並不差

3樓:

自己定義陣列。

比如定義乙個1*4的陣列[a b c d]來表示數A,每個陣列都是32位。

我們取個名字叫4精度數,定義乙個資料型別 quad那麼有然後定義quad數之間的運算關係,

接下來定義原來的int, long之類的數和quad數之間的換算關係。

這樣就能得到最大

大小的數。

如果仍然不夠可以繼續,反正現在硬碟以T計算,假設是乙個1T的硬碟每個位元組做乙個陣列,總共是位陣列。

通過這種方法我們能定義最大數是:

這個數應該比整個宇宙的原子數都要多了,不知道夠用不。

4樓:葉飛影

對精度要求不高的話使用浮點數

如C語言中:

單精度的浮點數float

#define FLT_MAX 3.402823466e+38F /* max value */

其二進位制為:0x7f7fffff

雙精度的浮點數double

#define DBL_MAX 1.7976931348623158e+308 /* max value */

其二進位制為:0x7fefffffffffffffDBL_MAX已經是極大的數值了.

若是整數的話,可以定義自己的資料型別,如使用N個位元組來表示乙個整數.

怎麼理解計算機中的「池」 這個名詞?

雖千萬人 學程式設計的時候,老師給我們的解釋過池的意思,大概是 如果你喝水,你可以拿杯子去水龍頭接。如果很多人喝水,那就只能排隊去接。現在有了池,每個人到池裡舀一杯就好,省去了等著水龍頭出水的時間。 今天也要加油鴨 樓上各位解釋很清楚了,我從世界統一的觀點來說一下。為啥這麼說,因為洋人就是用的池Po...

如何理解計算機中的位址?這有什麼用啊?

韓利輝 學習計算機網路,離不開網絡卡的mac位址和IP位址,無論你學思科,還是華為,華三,前邊網路基礎知識都是一樣的,mac位址是燒錄在網絡卡上的,不能修改,如果要修改mac位址,可以通過本地連線屬性,進行修改,這是從作業系統級別修改mac位址,只要重新安裝系統mac位址就又會到了網絡卡燒錄的位址了...

計算機中是如何儲存和處理浮點數的

來知曉 目錄 浮點儲存本質 IEEE標準演算法 例項分析 參考資料 目前計算機中多採用IEEE確定的浮點儲存標準演算法,核心原理為將浮點的整數用2的指數來表達壓縮,小數用2的負指數來表達壓縮。分為指數字 小數字,將整數的表達更壓縮 float 32位固定分配為1bit符號位,8bits指數字,23b...