整數
整數變數的分類
1) 基本型:類型說明符為int,在記憶體中占2個位元組。
2)短整量:類型說明符為short int或short。所占位元組和取值範圍均與基本型相同。
3) 長整數:類型說明符為long int或long,在記憶體中占4個位元組。
4) 無符號型:類型說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
n無符號基本型:類型說明符為unsigned int或unsigned。
n無符號短整數:類型說明符為unsigned short。
n無符號長整數:類型說明符為unsigned long。
各種無符號類型量所占的記憶體空間位元組數與相應的有符號類型量相同。但由於省去了符號位元,故不能表示負數。
有符號整數變數:最大表示32767
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
無符號整數變數:最大表示65535
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
下表列出了Turbo C中各類整數量所分配的記憶體位元組數及數的表示範圍。
類型說明符 |
數的範圍 |
位元組數 |
int |
-32768~32767 即-215~(215-1) |
2 |
unsigned int |
0~65535 即0~(216-1) |
2 |
short int |
-32768~32767 即-215~(215-1) |
2 |
unsigned short int |
0~65535 即0~(216-1) |
2 |
long int |
-2147483648~2147483647即-231~(231-1) |
4 |
unsigned long |
0~4294967295 即0~(232-1) |
4 |
以13為例:
int型:
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
short int型:
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
long int型:
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
11 |
01 |
unsigned int型:
00 |
00 |
00 |
00 |
00 |
00 |
11 |
01 |
unsigned short int型:
00 |
00 |
00 |
00 |
00 |
00 |
11 |
01 |
unsigned long int型:
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
11 |
01 |
2.整數變數的定義
變數定義的一般形式為:
類型說明符 變數名識別字,變數名識別字,...;
例如:
int a,b,c; (a,b,c為整數變數)
long x,y;
(x,y為長整數變數)
unsigned p,q;(p,q為無符號整數變數)
在書寫變數定義時,應注意以下幾點:
n允許在一個類型說明符後,定義多個相同類型的變數。各變數名之間用逗號間隔。類型說明符與變數名之間至少用一個空格間隔。
n最後一個變數名之後必須以“;”號結尾。
n變數定義必須放在變數使用之前。一般放在函數體的開頭部分。
3.範例
【例】整數變數的定義與使用。
#include<stdio.h> main() { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } |
4、整數數據的溢出
【例】整數數據的溢出。
#include<stdio.h> main() { int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); } |
32767:
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
-32768
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
【例】
#include<stdio.h> 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); } |
從程式中可以看到: x, y是長整數變數,a, b是基本整數變數。它們之間允許進行運算,運算結果為長整數。但c,d被定義為基本整數,因此最後結果為基本整數。本例說明,不同類型的量可以參與運算並相互儲存。其中的類型轉換是由編譯系統自動完成的。有關類型轉換的規則將在以後介紹。 |