C語言基礎之類型系統
類型系統是每個編程語言都會有的基本概念,C語言的類型系統可以概括為基本類型和復合類型,基本類型又可以細分為整型數值類型和浮點數數值類型,不同類型所占用的內存長度不相同,下面先來介紹一下基本類型。
整型數值基本類型
1、char 占用一個字節
2、short 占用兩個字節
3、int 目前基本都是4字節
4、long int (可以簡寫為 long) (32位系統是4字節,64位系統是8字節)
5、long long int ( 可以簡寫為long long) 占用8節字
浮點數數值基本類型
1、float 占用4字節 (單精度)
2、double 占用8節字 (雙精度浮點數)
復合類型包含如下幾種
1、struct 結構體
2、union 聯合體
3、enum 枚舉 (長度等同 int )
4、數組
5、指針
二、有符號和無符號
在定義變量時默認是有符號類型,需要定義無符號變量時只需要使用關鍵字 unsigned 來修飾即可,如 unsigned char、unsigned short、unsigned int等都是合法的變量,需要特別註意的是浮點數數值類型不能用關鍵字 unsigned 來修飾,如 unsigned float和unsigned double 都是不合法的,因為浮點數類型的存儲方式和整型數值類型不同。
有符號變量的二進制最高一位用來表示符號位,正數是0負數是1剩下的用來表示值 ,無符號變量的所有二進制位都用來表示值,整型數值變量的值在計算機內部使用補碼來表示。
三、原碼、反碼和補碼
原碼是值的二進制表示方式,舉例說明
char v = 1 原碼=0000 0001 最高位是0
char v = -1 原碼 = 1000 0001 最高位是1
正數的原碼=反碼=補碼
負數的反碼等於原碼除了符號位之外所有的位都取反,補碼等於反碼加一,舉例說明
char v = -1 原碼 = 1000 0001, 反碼 = 1111 1110, 補碼 = 1111 1110 + 1 = 1111 1111
C語言基礎之類型系統