繁体   English   中英

C中int和char之间的数值运算

[英]Numerical operations between int and char in C

我想知道如何真正存储数据,因为在示例中,直觉很弱。

我相信,任何值都具有数字识别能力; 因为“ a”的价值为48; 因此我假设在任何情况下我都可以将48减为“ a”(例如(100-'a'== 52))。

现实似乎有所不同。

所以;

我什么时候可以减小'a'以获得类似int的值? 我在这里应该使用什么,这样看起来会更直观?

...

程序勉强完成,但是函数采用了char数组,它需要从char之一获取值int(3)。 / *在这种情况下* /

谢谢你的帮助!

/* command reader */
int cr (char a[])
{
    printf("%s\n", a);

    /* command sequence */
    char co[350]; /* <-- change later */

    for (int cri = 0, coi = 0; a[cri]; cri++, coi++)
    {
        printf("%c ", a[cri]);

        co[coi] = a[cri];
    }

    int ec (char co[])
    {
        printf("\n%s co\n", co);
        printf("\n%c co1\n", co[1]);

        co[1] = co[1];

        printf("\n basic: %d\n\n", co[1]); /* 51 */

        co[2] = co[1] - 'a';

        printf("\n charred out: %d\n\n", co[2]); /* -46 */

        co[3] = co[1] - 48;

        printf("\n numbered out: %d\n\n", co[3]); /* 3 */

        return 0;
    }

    ec(co);

    return 0;
}

cr("F3 R B");

'a'的“值”(即其数字表示形式)实际上取决于字符集。 在大多数情况下,这是美国信息交换标准码(ASCII)或字符集,其中前128个代码点与ASCII相同。 但是, 'a'的ASCII值实际上是97,而不是48。

正如WhozCraig所说,我一直在寻找(-“ 0”),其中“ 0”的数字值为48。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM