此外數據又分為以下幾大類型:
- 1. 整型:
int型:4字節(VC++中是4字節,Turbo是2字節),-2147473648~2147483647
( -231 ~ 231-1 )
short型:2字節,-32768~32767(-215 ~ 215-1)
long型:4字節,-2147473648~2147483647( -231 ~ 231-1 ).
long long型:8字節,-263~(263-1)
此外還有無符號(unsigned)整型,長度與有符號整型相同,只是取值范圍不同,因為最左一位符號位在無符號整型中屬於數值位
對應長度為:
Unsigned int:0~232-1
Unsigned short:0~216-1
… …
整型在存儲單元中的存儲方式:用整數的補碼存放。(補碼:正數的補碼與正數相同,負數的補碼是將負數的數值位取反再末尾加1)
疑問一:若向一個無符號整型變量賦值一個負數(-1),輸出結果是多少?為什么?
答:65535。因為系統對-1先會轉化成補碼的形式(-1的補碼為1111 1111)然后存儲在無符號整型變量中。但是在輸出時,符號位的1被看作了數值位,正好1111 1111對應的十進制數位65535,則輸出65535.
- 2. 實型(浮點型)
浮點型數據是用來表示具有小數點的實數的.
實數是以指數的形式存放在存儲單元中的(在存儲時,系統將實型數據分成小數部分和指數部分分別存放).
float型:4字節(6位有效數字)
double型:8字節(15位)
long double型:8字節或16字節(15位或19位)
- 3. 字符型
字符是按其整數(字符的ASCII碼)形式存儲的。
只占一個字節長度
常見的有:
‘a’ 的ASCII碼是十進制數97,二進制代碼為110001
‘A’ 的ASCII碼是十進制數65,二進制代碼為1000001
‘1’ 的ASCII碼是十進制數49,二進制代碼為0110001
‘ ’(空格)的ASCII碼十進制數為32,二進制代碼為0100000
… …
疑問:定義char c = ‘a’;輸出形式為 %d 和 %c 時的結果是什么?為什么?
答:97 a 因為%d表示輸出其十進制整數形式,而%c表示輸出其字符形式