標籤:無符號 order style 用兩個 基本類型 定義變數 符號 hit 數組
一、類型系統介紹
類型系統是每個程式設計語言都會有的基本概念,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語言基礎之類型系統