问答详情
源自:2-8 自动类型转换

不知道结果是97

为什么赋值c,n,f结果是97,  表示不明白啊

#include <stdio.h>
int main()
{
    char c = 'a';
    int n =  c ;    //将c赋值给n
    float f =  n ;   //将c赋值给f
    double d =  f  ;  //将c赋值给d
    printf("%d\n",n);
    printf("%f\n",f);
    printf("%lf\n",d);
    return 0;   

提问者:墨汁大盗 2015-07-21 17:30

个回答

  • 堕天使008
    2015-07-21 18:08:12

    这个是一个 字符的存储的问题。 其实计算机就是一堆开关做的, 而 开关的两个状态对应 数字 0 和 1。

    所以不论什么文件 在计算机里面 实际上都是以二进制 0101000001 这个存的。平常的数字转换成2进制好说。

    那字母呢?  于是乎许多人想出了一个办法 将字母编号,有点像现在的手机号, 用指定的号码代替的对应的文字,

    为此 专门有 一群人 做了一个规定 ,规定了每个字母和常用的符号到底对应的数字是多少。(ASCII字符集)

     其中 A就是64 而 a 则对应到了97。

    所以这道题里 你以把 这个字母 以数字显示  他就是97。

    其实中文也是同理 每个汉字都对应的一个 数字。

    (另外 你在电脑上按住Alt 输入一个 数字,然后松开Alt,就会显示出来对应的文字 你可以玩玩。)