在嵌入式开发中,为了获取准确的数据信息–字符信息,选用unsigned char的字符(串)变量,因为signed char 中 负数部分没有实际的符号意义——同时,char数据类型在不指名符号时,既不是无符号,也不是有符号。
char字符型
基本含义: 字符数据类型(字节大小为1)
- eg: ‘a’, ‘b’, '\n’等
数据类型的本质: 整型数据
- eg: ‘0’ == 48 == 0x30
补充:
通常,直接申明的char数据类型变量,既不是unsigned char ,也不是signed char,在表示相当于是自动类型升级或者随机--取决于编译器。
所以,在使用字符数据或者需要用作读取数据信息时,直接定义unsigned char为好——因为数据保存在计算机中,总是二进制,因此总可以使用无符号的整型数据表示(如,变量的地址等)。
同时,要明确--signed char 范围:-128~127; unsigned char 范围:0~255. 而char 范围:取决于实际应用环境。
unsigned char 无符号字符型
基本含义:无符号字符–即每一个符号对应的编码在0~255之间
基本使用:
eg:
unsigned char data[128]; // 用于存储字符数据等
unsigned char * buf = data;
signed char
基本含义:有符号字符–即每一个符号对应的编码在-128~127之间
基本使用:
// 用于存储字符数据等–但是在-128~-1间的值并不对应ascll码中的字符
eg: signed char data[128];
signed char * buf = data;