Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得整数而不是ASCII码值的输出_C_Char_Ascii_Integer Promotion - Fatal编程技术网

如何获得整数而不是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;

我正在执行这个程序 输出为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;
然后

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
。。我想我知道你的问题,但是。。我没有。