變量
變量聲明定義
聲明不分配存儲(chǔ)空間,定義分配存儲(chǔ)空間,廣義上講定義是聲明的一種特殊形式。
不同類型常量的表示
10 整型
10l 10L 長(zhǎng)整型
10ll 10LL 長(zhǎng)長(zhǎng)整型
10ul 10UL 無符號(hào)長(zhǎng)整型
10ull 10ULL 無符號(hào)長(zhǎng)長(zhǎng)整型
010 八進(jìn)制8
0x10 十六進(jìn)制16
整型變量的取值范圍
在計(jì)算機(jī)中數(shù)是以補(bǔ)碼的形式存在的,糾其原因是為了方便進(jìn)行運(yùn)算。正數(shù)的補(bǔ)碼和原碼相同,負(fù)數(shù)的補(bǔ)碼等于其絕對(duì)值的原碼取反后加1(符號(hào)位保持不變)。下面就來說明為什么用補(bǔ)碼方便運(yùn)算:
以8位2進(jìn)制數(shù)來舉例說明,對(duì)于8位有符號(hào)2進(jìn)制數(shù),最高位為符號(hào)位,設(shè)
N為負(fù)數(shù),
則
|N|為正數(shù)且
|N| >= 1,
N的補(bǔ)碼為
N的補(bǔ)碼 = 2^7 + 2^7 - 1 - |N| + 1 = 2^7 + 2^7 - |N|,
設(shè)
M為正數(shù),
在計(jì)算機(jī)中
N+M實(shí)際上等于
N的補(bǔ)碼+M即
2^7 + 2^7 - |N| + M = 2^7 + 2^7 + (M - |N|),
1)如果
M > |N|,那么最終運(yùn)算結(jié)果為
M - |N|,符號(hào)位從1變?yōu)?,這是因?yàn)镹的符號(hào)位等于1,可表示為
1000 0000 = 2^7,當(dāng)再加上2^7后,將變?yōu)?,即
1000 0000
+
1000 0000
= 1
0000 0000,1被舍棄了。
2)如果
M < |N|,那么最終運(yùn)算結(jié)果為
2^7 + 2^7 - (|N| - M),即等于
-(|N| - M)的補(bǔ)碼,也就是
-(|N| - M)了。
3)如果
M = |N|,那么最終運(yùn)算結(jié)果為0,溢出位被舍棄了,這與
M > |N|的情況類似。
當(dāng)
M也為負(fù)數(shù)的時(shí)候,雖然符號(hào)位相加,最高位變?yōu)?,但由于非符號(hào)位相加也存在溢出現(xiàn)象,符號(hào)位又變回了1,即負(fù)數(shù)加上負(fù)數(shù)還是負(fù)數(shù),這是合理的。用公式表示如下,
N的補(bǔ)碼 + M的補(bǔ)碼 = 2^7 + 2^7 - |N| + 2^7 + 2^7 - |M| = 2^7 + 2^7 - (|N| + |M|),
即等于
-(|N| + |M|)的補(bǔ)碼。
當(dāng)然正數(shù)與正數(shù)相加就很好理解了。
通過以上分析,我們可知在計(jì)算機(jī)中使用補(bǔ)碼進(jìn)行運(yùn)算,是很方便的,即使得計(jì)算機(jī)可以像普通的四則運(yùn)算一樣進(jìn)行加減乘除等運(yùn)算。
本文版權(quán)歸傳智播客C++培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客C/C++培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/c/