C语言数据类型char
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)的字符。