技术型:char型数据是如何比较大小的字符型char
2009-12-20 22:33
435 查看
转帖:char型数据是如何比较大小的字符型char:
在C语言中(在C语言中是这样,不同的语言对字符的处理方式不一样)字符是以ASCII码存放的。ASCII码从0到255一共256个整数,每个数字对应一个字符。比如'A'的ASCII码是65,'X'的是88。
数字也是字符。比如'1'的ASCII码是49,'9'是57等等。比较字符的大小就是比较他们的ASCII码值。
所以char型存放的是字符的ASCII码,是一个整数,不是“字符”。
因为char型和int型在内存中都是数字,所以这两者在使用上经常可以通用,只是数字范围不一样。
ASCII码一共256个,需要8位二进制存放,在16位的C语言中int型是16位,大于char的8位,所以可以直接用int存放字符的ASCII码。
比如下面的代码:
int a=98;
printf("%c",a);/*以字符方式输出a*/
结果是98对应的字符'b'。
char a='b';
printf("%d",a);/*以整型方式输出a*/
结果是b的ASCII码98。
在C语言中(在C语言中是这样,不同的语言对字符的处理方式不一样)字符是以ASCII码存放的。ASCII码从0到255一共256个整数,每个数字对应一个字符。比如'A'的ASCII码是65,'X'的是88。
数字也是字符。比如'1'的ASCII码是49,'9'是57等等。比较字符的大小就是比较他们的ASCII码值。
所以char型存放的是字符的ASCII码,是一个整数,不是“字符”。
因为char型和int型在内存中都是数字,所以这两者在使用上经常可以通用,只是数字范围不一样。
ASCII码一共256个,需要8位二进制存放,在16位的C语言中int型是16位,大于char的8位,所以可以直接用int存放字符的ASCII码。
比如下面的代码:
int a=98;
printf("%c",a);/*以字符方式输出a*/
结果是98对应的字符'b'。
char a='b';
printf("%d",a);/*以整型方式输出a*/
结果是b的ASCII码98。
相关文章推荐
- 如何比较DateTime类型数据的大小
- java中两个字符串如何比较大小
- BigDecimal如何比较大小
- 分析比较数据库各表数据大小
- 如何生成比较像样的假数据
- sql server中字符串类型的日期如何比较大小
- SQL中如何查询各个数据表的大小
- 字符型数据(char)与无符号字符型数据的区别(unsigned char)
- JNA 如何接收C层返回的char**数据
- 出现Oracle 文件大小变为0的情况如何恢复数据?
- 【pb】 如何让数据窗口中字符型字段只能录入数字和符号'-' (自定义的掩码)
- 使用函数指针实现任意数据类型大小比较
- char、varchar与nvarchar三种数据类型比较
- 如何比较时间的大小
- JAVA DATE类型数据比较判断大小方法
- oracle读取char(2)字符型数据
- 关于数据表字段char型与varchar型的比较
- 不同语言基本数据类型(int、char、float、double....)对应字节大小
- 在JAVA中怎么比较Double类型数据的大小?
- 如何收缩临时数据文件的大小