教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

c++培訓(xùn)之基礎(chǔ)變量

更新時間:2016年07月21日17時42分 來源:傳智播客C/C++學(xué)科 瀏覽次數(shù):

變量

變量聲明定義

聲明不分配存儲空間,定義分配存儲空間,廣義上講定義是聲明的一種特殊形式。

不同類型常量的表示

10 整型
10l   10L 長整型
10ll    10LL   長長整型
10ul 10UL 無符號長整型
10ull 10ULL 無符號長長整型
010 八進(jìn)制8
0x10 十六進(jìn)制16

整型變量的取值范圍

在計算機(jī)中數(shù)是以補碼的形式存在的,糾其原因是為了方便進(jìn)行運算。正數(shù)的補碼和原碼相同,負(fù)數(shù)的補碼等于其絕對值的原碼取反后加1(符號位保持不變)。下面就來說明為什么用補碼方便運算:
以8位2進(jìn)制數(shù)來舉例說明,對于8位有符號2進(jìn)制數(shù),最高位為符號位,設(shè)N為負(fù)數(shù),
|N|為正數(shù)且|N| >= 1N的補碼為
N的補碼 = 2^7 + 2^7 - 1 - |N| + 1 = 2^7 + 2^7 - |N|,
設(shè)M為正數(shù),
在計算機(jī)中N+M實際上等于N的補碼+M
2^7 + 2^7 - |N| + M = 2^7 + 2^7 + (M - |N|),
1)如果M > |N|,那么最終運算結(jié)果為M - |N|,符號位從1變?yōu)?,這是因為N的符號位等于1,可表示為1000 0000 = 2^7,當(dāng)再加上2^7后,將變?yōu)?,即
  
1000 0000
+   1000 0000
              
=   10000 0000,1被舍棄了
2)如果M < |N|,那么最終運算結(jié)果為2^7 + 2^7 - (|N| - M),即等于-(|N| - M)的補碼,也就是-(|N| - M)了。
3)如果M = |N|,那么最終運算結(jié)果為0,溢出位被舍棄了,這與M > |N|的情況類似。
當(dāng)M也為負(fù)數(shù)的時候,雖然符號位相加,最高位變?yōu)?,但由于非符號位相加也存在溢出現(xiàn)象,符號位又變回了1,即負(fù)數(shù)加上負(fù)數(shù)還是負(fù)數(shù),這是合理的。用公式表示如下,
N的補碼 + M的補碼 = 2^7 + 2^7 - |N| + 2^7 + 2^7  - |M| = 2^7 + 2^7 - (|N| + |M|)
即等于-(|N| + |M|)的補碼。
當(dāng)然正數(shù)與正數(shù)相加就很好理解了。
通過以上分析,我們可知在計算機(jī)中使用補碼進(jìn)行運算,是很方便的,即使得計算機(jī)可以像普通的四則運算一樣進(jìn)行加減乘除等運算。

本文版權(quán)歸傳智播客C++培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客C/C++培訓(xùn)學(xué)院
首發(fā):http://metathetuscanyresort.com/c/
0 分享到:
和我們在線交談!