导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[红8511]一本超越谭浩强、K&R的C语言编程著作《



No.63586
作者:红8511
邮件:
ID:136082
登陆:1次
文章数:8篇
最后登陆IP:
最后登陆:2009/9/2 13:41:08
注册:2009/9/2 13:41:08
财富:100
发帖时间:2009/9/4 16:59:58
发贴者IP:221.219.118.207
标题:红8511:一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》连载七
摘要:No.63586一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》连载七 6. 字符类型与字符编码 
字符常量或字符型变量也可以当作整数参与运算,例如:

printf("%c\n", 'a'+1);
执行结果是b。

我们知道,符号在计算机内部也用数字表示,每个字符在计算机内部用一个整数表示,称为字符编码(Character Encoding),目前最常用的是ASCII码(American Standard Code for Information Interchange,美国信息交换标准码),详见图 A.1 “ASCII码表”。表中每一栏的最后一列是字符,前三列分别是用十进制(Dec)、十六进制(Hx)和八进制(Oct)表示的字符编码,各种进制之间的换算将在第 2 节 “不同进制之间的换算”介绍。从十进制那一列可以看出ASCII码的取值范围是0~127。表中的很多字符是不可见字符(Non-printable Character)或空白字符(Whitespace)[3],不能像字母a这样把字符本身填在表中,而是用一个名字来描述该字符,例如CR(carriage return)、LF(NL line feed,newline)、DEL等等。作为练习,请读者查一查表 2.1 “C标准规定的转义字符”中的字符在ASCII码表中的什么位置。

回到刚才的例子,在ASCII码中字符a是97,字符b是98。计算'a'+1这个表达式,应该按ASCII码把'a'当作整数值97,然后加1,得到98,然后printf把98这个整数值当作ASCII码来解释,打印出相应的字符b。

之前我们说“整型” ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:5234毫秒 查询6次