
C语言菜鸟问题:如下
#include"stdio.h"voidmain(){chara='A'+'8'-'4';printf("%d",a);}这样算出来等于69,但是改为chara='A'...
#include "stdio.h"
void main()
{ char a='A'+'8'-'4';
printf("%d",a);
}
这样算出来等于69,但是改为 char a='A'+'8'计算出来的是121?
按我的理解:‘8’和‘4’计算时应当是计算其ASCII码而不是8和4(8的ASCII码是56),但是怎么会出现69呢? 展开
void main()
{ char a='A'+'8'-'4';
printf("%d",a);
}
这样算出来等于69,但是改为 char a='A'+'8'计算出来的是121?
按我的理解:‘8’和‘4’计算时应当是计算其ASCII码而不是8和4(8的ASCII码是56),但是怎么会出现69呢? 展开
4个回答
2014-03-25
展开全部
#include <stdio.h>
int main(void)
{
char a = 'A' + '8' -'4';
char b = 'A' + '8';
char c = 'A';
char d = '8';
char e = '4';
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("c = %d\n", c);
printf("d = %d\n", d);
printf("e = %d\n", e);
return 0;
}
这样打印出来你就知道了
'A' 等于十进制数值的65
‘8’ 等于十进制数值的56
‘4’ 等于十进制数值的52
然后进行十进制加减法吧
追问
呵呵,谢谢了 自己弄懂了。你没说出关键来:因为他们对应的ASCII码值的差值和他们的差值是一样的
追答
这个不成问题,我以为你自己会百度搜搜的 :
http://www.96yx.com/tool/ASC2.htm
展开全部
A 65
8 56
4 52
a='A'+'8'-'4'=65+56-52=69='E'
8 56
4 52
a='A'+'8'-'4'=65+56-52=69='E'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A是65+8是56-4是52结果就是69
更多追问追答
追问
没看懂……为什么删掉-‘4’后数值增加到121?如果把‘8’和‘4’都当做字符那'A'+'8'-'4'的值就不应该是69了
追答
删除后 就是A+8就是65+56当然就是121了
这里的8是字符不是数字8,所以也是有asc码的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'8'不等于8。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询