char簡介
char是C/C++中的基本數據類型,可容納單個字符的一種基本數據類型。
char占一個字節,也就是8個bit(二進制位),0000 0000 ~ 1111 1111,在無符號類型時char表示的范圍是0~255,在有符號類型時char表示的范圍是-128~127,可以表示256個整數。
注:
char這種數據類型和其他的基本數據類型有所不同,char在標准中是unsigned,是有符號的,也就是有正負之分的,而其他的基本數據類型默認是signed無符號類型的。
字符類型里的整數被分成兩組,每組128個:
其中的一組里的字符兩種表示方式之間的對應關系在所有計算機上都是一樣的,它們對應整數的范圍從0到127。
另一組里的字符兩種表示方式之間的對應關系在不同的計算機上可能不一樣,它們對應的整數范圍可能從-128到-1也可能從128到255。
字符類型(char)是整數類型,在內存單元中以整數形式存放。所以字符類型也可以進行運算。
判斷編譯器默認的char符號:
#include <stdio.h> int main(void) { char c = -1; if (c < 200) { printf("signed\n"); } else { printf("unsigned\n"); } return 0; }
ASCII碼:
說到char就會提到ASCII碼。
我們平常使用的是標准ASCII碼,也叫基礎ASCII碼,使用7位二進制數來表示(剩下的一位為0,也就是0-127)。
0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字符)。
32~126(共95個)其中48~57為0~9阿拉伯數字、65~90為26個大寫英文字母、97~122為26個小寫英文字母,其余的為一些標點符號和運算符號等;
還有擴展ASCII碼,許多基於X86的系統都支持使用擴展(或高)ASCII碼,擴展ASCII碼允許將每個字符的第8位用於確定附加的128個特殊符號字符、外來語字母和圖形符號;擴展ASCII字符從128~255(0x80~0xff)的字符。
