'9' - '0'等于什么?

字符9减去字符0后=什么?
结果有何含义,还是字符吗?

这你一要了解字符的ASCII码。0到9这几个数字在字符中都有连续的ASCII码,比如说0的ASC码为48,5的码为48+5,这些码都可以以int型表示。所以,‘9’-‘0’,9的码为48+9,57,这两个字符减去就等于减去了他们的码,所以57-48等于int类型9。利用这个机制,你可以从一个字符串中中的数字分解成整型数字。char类型说是存储一个字符,其实是存储字符的ASC(类型是int)码。如果我们再把这个差9存储到char的类型的变量里,则表示的是带有ASC码9的字符,是字符')'。
'追问

意思就是说‘9’-‘0’等于结果9,这个9要看他存储到哪里,

比如int sum=‘9’-‘0’ 那么这个结果sum就是数字9

char sum=‘9’-‘0’ 那么这个结果就是字符9
对吗?

追答

不是字符9,char sum的存储着有ASC码为9的字符。是')'

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-11
首先看数字有没有加(' ')

有单引号:
表示字符常量,使用时,是转变换成字符对应的ASCII值。 如下,
'0'对应的ASCII值: 48
'1'--------------------49
'2'--------------------50
......
'9'--------------------57

'a'------------------97
'A'------------------65
如:'0'~'9'表示数字48~57

无单引号:
表示字符实际的意义,如,0~9就表示数字0~9了

所以本题:'9' - '0' <=====> 57-48=9 (输出格式为:%d)----------%d表示输出整数

如果输出格式是 %c的话,结果为ASCII值9 对应的字符。------------%c表示输出 字符
(输出结果是数字还是字符,得看格式控制符是%d还是%c.)

希望对你有所帮助!追问

比如int sum;
char a;
sum='9' - '0' sun的 结果是数字;

a='9' - '0'+8 a的结果是字符(其中8是数字,在参与运算的时候,
是按字符8处理,还是数字9?)

是这样吗?

追答

感觉会报错。
哈。你这一问,还牵出一个数据类型自动转换的题型,good.
数据类型转换规则:
short、char→int→unsigned→long→ double ← float

所以,
#include "stdio.h"
main()
{
int sum; /*定义整型*/
char a; /*字符型 应改为 int a;*/
sum='9' - '0' ;
putchar(sum); /*输出:9*/
a='9' - '0'+8 ;/*这边得用到数据类型转换规则:将字符'0' ’9‘转化成整型数字:48 58 所以a='9' - '0'+8a=57-48+8 即 a=9 不过你一开始就定义a为char 可能会报错 */

追问

int sum; /*定义整型*/

  char a;  /*字符型   应改为 int a;*/

    sum='9' - '0' ;     !!!sum是数字9,是or不是?

     putchar(sum);  /*输出:9*/!!!sum又变成了ask编码表9所对应的字符,是or不是?

    a='9' - '0'+8<======>a=57-48+8   即 a=9 !!!为什么这里不是a= ask编码表9所对应的字符,因为之前已经定义char a了,why呢?

 

追答



不是 putchar用于输出,不然改成scanf输出

char可以表示in t int 不能表示char

追问

哦哦,谢谢啦~

本回答被提问者和网友采纳
第2个回答  2012-11-11
字符9=39
字符0=30
字符9-字符0=9
9查ascii表
9
字符显示形式: ht
10进制的形式: 9
16进制的形式: 9
8进制的形式: 11
网页使用形式: 或
地址编码形式: %09追问

字符9-字符0=9 这个结果9是字符还是什么东东?

第3个回答  2012-11-11
查ask编码表,他们本质都是int值追问

结果还是字符吗?我想问的是,结果还是字符吗?

追答

不是字符了,但是还是ask控制码

第4个回答  2012-11-11
是9

57-48=9

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网