整形資料在記憶體中的存放形式
數值是以補碼表示的:
1. 正數的補碼和原始碼相同,
2. 負數的補碼: 將該數的絕對值的二進位制形式按位取反再加1.
例如: 求 -10 的補碼
10的原始碼: 0000 0000 0000 1010
取反 : 1111 1111 1111 0101
再加1,得-10補碼: 1111 1111 1111 0110
由此可知,左面的第一位是表示符號的。
各種無符號整型資料所佔的記憶體空間位元組數與相應的有符號型別量相同,但由於省去了符號位,故不能表示負數。
有符號整型資料: 最大值表示32767
0111 1111 1111 1111
無符號整數資料 : 最大值表示65535
1111 1111 1111 1111
以13為例:
int型: 0000 0000 0000 1101
short int: 0000 0000 0000 1101
long int : 0000 0000 0000 0000 0000 0000 0000 1101
unsigned int型: 0000 0000 0000 1101
unsigned short int: 0000 0000 0000 1101
unsigned long int : 0000 0000 0000 0000 0000 0000 0000 1101
整型資料的表示方法
1> 十進位制
十進位制沒有字首。0~9.
2> 八進位制
八進位制必須以o開頭,以o作為字首,數碼取值為0~7. 八進位制通常是無符號數。沒有負數。
例如: o177777 代表十進位制 65535
3> 十六進製制
十六進製制的字首為ox或ox,其數碼取值為0 ~ 7,a~f或a~f。
例如 : oxffff 代表十進位制的 65535.
整數的字尾:
可以用字尾「l」或「l」 來表示長整型數。 例如:
十進位製長整型數: 65535l ---> 65535
八進位製長整型數: o200000l ---> 65535
十六進製製長整型數: ox10000l----->65535
長整型數65536l 和基本整型數65535並沒有區別,但對65535l。因為是長整型數,c編譯系統將為它分配4個位元組儲存空間
而對於65535,因為是基本型別,只分配2個位元組的儲存空間,在運算和輸出格式上要予以注意!!!!!(乙個位元組8位)
無符號數也可用字尾表示。整型數的無符號數的字尾為「u」 或 「u」
字首、字尾可同時使用,以表示各種型別的數。 如: oxa5lu表示十六進製制無符號長整型數a5,其十進位制為165.
整形資料的溢位問題。由資料型別的數的範圍決定。
不同型別變數賦值。
不同型別的量可以參與運算並互相賦值,其中的型別轉換由編譯系統自動完成。
C語言 資料型別
基本型別 整形 int 字元型 char 實型 浮點型 單精度 float 雙精度 double 構造型別 陣列型別,結構型別 struct 聯合型別 uion 列舉型別 enum 指標型別 空型別 無值型別 void。常量 在程式執行過程中,其值不能被改變的量稱為常量。變數 變數代表記憶體中具有特...
c語言資料型別
下面是我關於c語言中各種資料型別長度的總結 參考the c programming language 1.c語言中的整數型別有char,short,int,long等幾種,下面是c語言對每種資料型別長度的規定 a short和long型別的長度不相同 b int型別通常同具體機器的物理字長相同 c ...
C語言資料型別
字面值這個術語表示的是字面值常量,指定了自身的值並不允許改變。const 十進位制的數字可以是 int long或unsigned long。2.1整形 一般佔4個位元組 32位 最高位代表符號,0表示正數,1表示負數,取值範圍是 2147483648 2147483647,在記憶體中的儲存順序是地...