3 9課 貨物不能亂堆放 資料的佔位和溢位

2021-10-09 16:27:52 字數 723 閱讀 8595

講過了進製,我們回頭來講溢位。

限定位數的數值表達

在位數不受限制的情況下,利用進製,我們可以使用有限種數字符號來表示所有的數值。

但如果限制數字會如何?

還是用我們熟悉的十進位制舉例子:

假設我們規定,某乙個整數是十進位制數,但是它最多總共只能佔兩位——只能有兩個數字,也就是最低的兩位:個位和十位。

那麼它最小能表達的是 0, 最大能表達的是99。

當我們給99加上1的時候,它的個位和十位都進了位,可是因為百位對於它根本不存在,於是最前面的1沒有了,結果變成了99 + 1 = 0 。

這種現象,就叫做溢位。

計算機中的溢位問題

原本三位的數字我非要放到兩個數字裡去,肯定是放不下啊。放不下非要硬放,於是就會出現錯誤,把最高位給「擠沒了」。這個錯誤的名字叫做溢位

溢位現象在平時我們徒手做數學計算的時候並不會出現,做算術題,位數不夠了隨時往前加就是了,草稿紙寫到頭了就換一張,總能繼續往前寫。

計算機裡面可就不一定了,計算機裡面的儲存空間是有限的!

一般的程式語言給某一特定型別的資料值分配的儲存空間大小是固定的,就那麼多位,數字太大了就裝不下——直觀上可以理解為貨太多,把貨架撐爆了!

二進位制數的溢位

其實無論什麼進製,在位數限定的情況下,都存在溢位這種現象。

不過,因為我們講得是計算機,而計算機中用的是二進位制,因

39 C 為什麼不能過載

不能過載operator 和 operator 的原因是,無法在這兩種情況下實現內建操作符的完整語義。說得更具體一些,內建版本版本特殊之處在於 內建版本的 和 首先計算左邊的表示式,如果這完全能夠決定結果,就無需計算右邊的表示式了 而且能夠保證不需要。我們都已經習慣這種方便的特性了。我們說操作符過載...

第39課第一題

第一小題 include include include 第一題,完數,第一小題 輸入數求完數,注意求因子的效率 int main sum 之前的迴圈中未包括因子1 if sum num printf d是完全數 n num else printf d不是完全數 n num return 0 第二題...

C 39課的主要內容

ado.net簡介 ado.net 插入,刪除,修改,檢索資料 datagridview控制項 顯示和運算元據 了解ado.net的結構 了解ado,net的元件 學習使用ado,net的五大基本物件 使用ado,net進行事務處理 學習針對資料庫資訊的插入,刪除,修改,查詢操作 學習如何通過c 程...