複製鏈接
請複製以下鏈接發送給好友

整型量

鎖定
整型量( integer)包括整型常量整型變量。整型常量就是整常數。在C語言中,使用的整常數有:八進制十六進制十進制三種。
中文名
整型量
外文名
integer
類    型
專有名詞
領    域
計算機
相    關
程序

整型量整型常量

1.八進制整常數必須以0開頭,即以0作為八進制數的前綴。數碼取值為0~7。八進制數通常是無符號數
以下各數是合法的八進制數:
015(十進制為13) 0101(十進制為65) 0177777(十進制為65535)
以下各數不是合法的八進制數:
256(無前綴0) 0382(包含了非八進制數碼) -0127(出現了負號)
2.十六進制整常數
十六進制整常數的前綴為0X或0x。其數碼取值為0~9,A~F或a~f。
以下各數是合法的十六進制整常數:
0X2A(十進制為42) 0XA0 (十進制為160) 0XFFFF (十進制為65535)
以下各數不是合法的十六進制整常數:
5A (無前綴0X) 0X3H (含有非十六進制數碼)
3.十進制整常數
十進制整常數沒有前綴。其數碼為0~9。
以下各數是合法的十進制整常數:
237 -568 65535 1627
以下各數不是合法的十進制整常數:
023 (不能有前導0) 23D (含有非十進制數碼)
在程序中是根據前綴來區分各種進制數的。因此在書寫常數時不要把前綴弄錯造成結果不正確。例如,數組int power_of_10[4]={0001,0010,0100,1000}的初值會被解釋為{1,8,64,1000}。
4.整型常數的後綴
在16位字長的機器上,基本整型的長度也為16位,因此表示的數的範圍也是有限定的。十進制無符號整常數的範圍為0~65535,有符號數為-32768~+32767。八進制無符號數的表示範圍為0~0177777。十六進制無符號數的表示範圍為0X0~0XFFFF或0x0~0xFFFF。如果使用的數超過了上述範圍,就必須用長整型數來表示。長整型數是用後綴“L”或“l”來表示的。例如:
十進制長整常數 158L (十進制為158) 358000L (十進制為-358000)
八進制長整常數 012L (十進制為10) 077L (十進制為63) 0200000L (十進制為65536)
十六進制長整常數 0X15L (十進制為21) 0XA5L (十進制為165) 0X10000L (十進制為65536)
長整數158L和基本整常數158在數值上並無區別。但對158L,因為是長整型量,C編譯系統將為它分配4個字節存儲空間。而對158,因為是基本整型,根據計算機的內部字長編譯器的版本分配2或4個字節的存儲空間。因此在運算和輸出格式上要予以注意,避免出錯。對長整型都表示不了的大數,某些編譯器規定可有64位整常數表示,後綴為“LL”或“ll”。有時,因為特殊需要,可能要對短整型進行特殊標記,只有部分編譯器支持短整型的後綴“S”或“s”。無符號數也可用後綴表示,整型常數的無符號數的後綴為“U”或“u”。例如:358u,0x38Au,235Lu均為無符號數。前綴,後綴可同時使用以表示各種類型的數。如0XA5Lu表示十六進制無符號長整數A5,其十進制為165。

整型量整型變量

整型變量可分為以下幾類:
1.基本型
類型説明符為int,根據計算機的內部字長編譯器的版本,在內存中可能佔2或4個字節(通常分別在16位機和32位機上),其取值為基本整常數。
2.短整型
類型説明符為short int或short,在內存中佔2個字節,其取值為短整常數。
類型説明符為long int或long,在內存中佔4個字節,其取值為長整常數。
4.64位整型(非ANSI標準)
類型説明符為__int64、long long int或long long,在內存中佔8個字節,其取值為64位整常數。
5.無符號型
類型説明符為unsigned。它可以單獨使用代表unsigned int,也可以作為前綴,都表示無符號整數,即永遠為非負的整型變量,大於0的數據範圍約擴大為原來的2倍。各種無符號類型量所佔的內存空間字節數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。下表列出了C++中各類整型量所分配的內存字節數及數的表示範圍。
類型説明符
數的範圍
分配字節數
備註
short
-32768~32767
■■
-
short int
-32768~32767
■■
-
signed int
-2147483648~2147483647
■■■■
-
unsigned int
0~4294967295
■■■■
-
long int
-2147483648~2147483647
■■■■
-
unsigned long
0~4294967295
■■■■
-
long long
-9223372036854775808~9223372036854775807
■■■■■■■■
-
unsigned long long
0~18446744073709551615
■■■■■■■■
-
__int128
-0x80000000000000000000000000000000~0x7fffffffffffffffffffffffffffffff
■■■■■■■■■■■■■■■■
C++14及以上支持,但暫不支持cin、cout輸入輸出
unsigned __int128
0~__INT128_MAX*2+1
■■■■■■■■■■■■■■■■
同上

整型量整型變量的説明

變量説明的一般形式為:類型説明符 變量名標識符,變量名標識符,...; 例如:
int a,b,c; (a,b,c為整型變量
long x,y; (x,y為長整型變量)
unsigned p,q; (p,q為無符號整型變量)
在書寫變量説明時,應注意以下幾點:
1.允許在一個類型説明符後,説明多個相同類型的變量。各變量名之間用逗號間隔。類型説明符與變量名之間至少用一個空格間隔。
2.最後一個變量名之後必須以“;”號結尾。
3.變量説明必須放在變量使用之前。一般放在函數體的開頭部分。
[Practice] //1int a,b;
short int c;
short d=100;
a=d-20;
b=a+d;
c=a+b+d;
d=d-a+c-b;'Vtable
a,2,0
b,2,0
c,2,0
d,2,100
of Vtable
'Vupdate
1,0;2,0
3,0
4,100
1,80
2,180
3,360
4,200
of Vupdate
of Practice
[Practice] //2int a=5;
int b=9;
long int c;
long d;
c=a+b-7;
d=a*b*c;
c=d*d*d;
a=c-d;'Vtable
a,2,5
b,2,9
c,4,0
d,4,0
of Vtable
'Vupdate
1,5
2,9
3,0
4,0
3,7
4,315
3,31255875
1,-5112
of Vupdate
of Practice
[Practice] //3int a=6,b=19;
unsigned int c;
int d;
c=a-b+7;
d=b*c;
a=b+c+d;
b=-a;'Vtable
a,2,6
b,2,19
c,2,0
d,2,0
of Vtable
'Vupdate
1,6;2,19
3,0
4,0
3,65530
4,-114
1,-101
2,101
of Vupdate
of Practice
void main(){
long x,y;
int a,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=x+a;
d=y+b;
printf("c=x+a=%d,d=y+b=%d\n",c,d);
}
將main説明為返回void,即不返回任何類型的值
x,y被定義為long型
a,b,c,d被定義為int型
5->x
6->y
7->a
8->b
x+a->c
y+b->d
顯示程序運行結果 of long x,y;
int a,b,c,d;
c=x+a;
d=y+b;
從程序中可以看到:x,y是長整型變量,a,b是基本整型變量。它們之間允許進行運算,運算結果為長整型。但c,d被定義為基本整型,因此最後結果為基本整型。本例説明,不同類型的量可以參與運算並相互賦值。其中的類型轉換是由編譯系統自動完成的。有關類型轉換的規則將在以後介紹。 [1] 
參考資料