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

全國(guó)咨詢/投訴熱線:400-618-4000

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

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

變量

變量聲明定義

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

不同類型常量的表示

10 整型
10l   10L 長(zhǎng)整型
10ll    10LL   長(zhǎng)長(zhǎng)整型
10ul 10UL 無(wú)符號(hào)長(zhǎng)整型
10ull 10ULL 無(wú)符號(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)位保持不變)。下面就來(lái)說(shuō)明為什么用補(bǔ)碼方便運(yùn)算:
以8位2進(jìn)制數(shù)來(lái)舉例說(shuō)明,對(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
              
=   10000 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://www.xamj520.com/c/
0 分享到:
和我們?cè)诰€交談!