-
1 # 髒話比謊話乾淨558
-
2 # 靈敏風鈴9h
整型資料就是整數。
1、整型資料的分類
整型資料的一般分類如下:(以下說明的在記憶體中所佔的位元組數均是在vs2012這個開發工具裡面的)
基本型:型別說明符為int,在記憶體中佔4個位元組。
短整型:型別說明符為short int或short。所佔位元組和取值範圍均與基本型相同。
長整型:型別說明符為long int或long,在記憶體中佔4個位元組。
長長整型:型別說明符為long long int或long long,在記憶體中佔8個位元組
無符號型:型別說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
無符號基本型:型別說明符為unsigned int或unsigned。
無符號短整型:型別說明符為unsigned short。
無符號長整型:型別說明符為unsigned long。
無符號長長整型:型別說明符為unsigned long long int。
在記憶體中,有符號整數表示的範圍是-2的n-1次方到2的n-1次方-1
無符號的整數表示的範圍為0到2的n次方-1
2、整數資料在記憶體中的存放形式
數值是以補碼錶示的:正數的補碼和原碼相同;負數的補碼:將該數的絕對值的二進位制形式按位取反再加1。
由反碼變回原碼的技巧,遇到第一個1是前面的數全部取反,即為原碼
3、整型資料的表示方法
上面講到的整數,都是十進位制。在C語言中,常用的還有八進位制和十六進位制。下面集中講解一下:
1) 十進位制數
十進位制數沒有字首。其數碼為0~9。
以下是合法的十進位制數:237、-568、65535、1627;
以下是不合法的十進位制數:023 (不能有前導0)、23D (含有非十進位制數碼)。
在程式中是根據字首來區分各種進位制數的。因此在書寫時不要把字首弄錯造成結果不正確。
2) 八進位制數
八進位制數必須以0開頭,即以0作為八進位制數的字首。數碼取值為0~7。八進位制數通常是無符號數。
以下是合法的八進位制數:015(十進位制為13)、0101(十進位制為65)、0177777(十進位制為65535);
以下是不合法的八進位制數:256(無字首0)、03A2(包含了非八進位制數碼)、-0127(出現了負號)。
3) 十六進位制數
十六進位制數的字首為0X或0x。其數碼取值為0~9,A~F或a~f。
以下是合法的十六進位制數:0X2A(十進位制為42)、0XA0 (十進位制為160)、0XFFFF(十進位制為65535);
以下是不合法的十六進位制數:5A (無字首0X)、0X3H (含有非十六進位制數碼)。
4) 整數的字尾
可以用字尾“L”或“l”來表示長整型數。例如:
十進位制長整型數:158L (十進位制為158)、358000L (十進位制為358000);
八進位制長整型數:012L (十進位制為10)、077L (十進位制為63)、0200000L(十進位制為65536);
十六進位制長整型數:0X15L (十進位制為21)、0XA5L (十進位制為165)、0X10000L (十進位制為65536)。
幾個整型變數的定義:
int a,b,c; // a,b,c為整型變數
long x,y; // x,y為長整型變數
unsigned p,q; // p,q為無符號整型變數
回覆列表
C語言中,簡單的內建型別有兩種:整數型別和void型別(陣列和指標是複合型別)。
整數的資料型別有8種: unsigned char, signed char, short int, unsigned short int, int, unsigned int, long int, unsigned long。
為了正確,合理的使用這些資料型別,我們需要了解他們的含意,並知道每個整數型別的取值範圍。這裡我簡單的將整數分成如下型別:
l 字元型(char):char可能是unsigned char的縮寫,也可能是signed char縮寫,取決於編譯器,它通常用來儲存字元。用1個位元組表示。
l 短整型(short):型別說明符為short int或short。記憶體中佔有2個位元組。
l 基本型(int):比較常用的型別,佔用記憶體不小也不大,是整數型別中使用相對較多的型別,在記憶體中至少佔用2個位元組,通常佔用4個位元組。
l 長整型(long):型別說明符為long int或long,在記憶體中至少佔4個位元組。
l 無符號型(unsigned):首位不是符號位,不能表示負數。前面4種類型都有與之對應的無符號型別。
下表列出了C語言中各類整型資料所分配的記憶體位元組數及數的表示範圍。
教程網秒秒學《資料型別》中對數值型別有很多的介紹,你可以看下