如何获得整数而不是ASCII码值的输出
我正在执行这个程序 输出为104个ASCII码值。 它以ASCII值给出值,但如何才能获得数字输出如何获得整数而不是ASCII码值的输出,c,char,ascii,integer-promotion,C,Char,Ascii,Integer Promotion,我正在执行这个程序 输出为104个ASCII码值。 它以ASCII值给出值,但如何才能获得数字输出 void main() { char ch1 , ch2, sum; ch1 = '2'; ch2 = '6'; sum = ch1+ch2; printf("sum = %d ", sum); getch(); } 我认为%c是您正在寻找的说明符。我认为%c是您正在寻找的说明符。只需使用表达式即可 sum = ch1 - '0' + ch2;
void main()
{
char ch1 , ch2, sum;
ch1 = '2';
ch2 = '6';
sum = ch1+ch2;
printf("sum = %d ", sum);
getch();
}
我认为
%c
是您正在寻找的说明符。我认为%c
是您正在寻找的说明符。只需使用表达式即可
sum = ch1 - '0' + ch2;
然后
printf("sum = %c ", sum);
这是一个演示程序
#include <stdio.h>
int main(void)
{
char ch1 , ch2, sum;
ch1 = '2';
ch2 = '6';
sum = ch1 -'0' + ch2;
printf( "sum = %c\n ", sum );
// ^^^
return 0;
}
另一种方法如下
#include <stdio.h>
int main(void) {
char ch1 , ch2, sum;
ch1 = '2';
ch2 = '6';
sum = ch1 -'0' + ch2 - '0';
printf( "sum = %d\n ", sum );
// ^^^
return 0;
}
表达式
ch1+ch2
的计算方式类似于50+54
(如果使用了字符的ASCII编码)只需使用表达式即可
sum = ch1 - '0' + ch2;
然后
printf("sum = %c ", sum);
这是一个演示程序
#include <stdio.h>
int main(void)
{
char ch1 , ch2, sum;
ch1 = '2';
ch2 = '6';
sum = ch1 -'0' + ch2;
printf( "sum = %c\n ", sum );
// ^^^
return 0;
}
另一种方法如下
#include <stdio.h>
int main(void) {
char ch1 , ch2, sum;
ch1 = '2';
ch2 = '6';
sum = ch1 -'0' + ch2 - '0';
printf( "sum = %d\n ", sum );
// ^^^
return 0;
}
表达式
ch1+ch2
的计算方式类似于50+54
(如果使用字符的ASCII编码)您能描述您期望的输出吗?你想让它打印8吗?你问“我怎样才能得到数字输出”-但是104
是一个数字。这不是你期望的号码吗?你在期待什么?当然不是8
<代码>'2'是十进制值为50的ASCII字符,而'6'
是十进制值为54的ASCII字符。50 + 54 == 104. 如果您打算添加2
和6
,那么您应该有ch1=2;ch2=6代码>以便将十进制数值指定给变量,而不是ASCII字符代码。能否描述预期的输出?你想让它打印8吗?你问“我怎样才能得到数字输出”-但是104
是一个数字。这不是你期望的号码吗?你在期待什么?当然不是8
<代码>'2'
是十进制值为50的ASCII字符,而'6'
是十进制值为54的ASCII字符。50 + 54 == 104. 如果您打算添加2
和6
,那么您应该有ch1=2;ch2=6代码>这样您就可以将十进制数值分配给变量,而不是ASCII字符代码。这就是打印字符的方式,但问题之一是,算术是用字符而不是它们所代表的整数值来完成的。啊,您确实想打印8
。。我想我知道你的问题,但是。。我没有。这就是你打印字符的方式,但问题之一是算术是用字符来完成的,而不是它们所代表的整数值。啊,你真的想打印8
。。我想我知道你的问题,但是。。我没有。