谋事在人 发表于 2011-3-16 14:25:55

新手被困难所困扰,忘了解的帮助一下

#include <stdio.h>

void main()

{
      charc= 97;
      int   i=12345;
      c=i;
      printf("%d\n",c);
}

输出的结果为什么是57呢,知道是各种量之间的转换,但是一点思路都没有,希望有知道的大侠们告诉一下详细的过程。谢谢了

小甲鱼 发表于 2011-3-16 15:29:38

提示1,int 类型占四个字节,char类型占一个字节;
提示2,计算机看到的都是二进制形式。

苍井空 发表于 2011-3-16 17:00:45

回复 2# 小甲鱼


    太有才了

578786647 发表于 2011-3-16 21:54:15

参照一下看看吧http://home.fishc.com/space.php?uid=100019&do=blog&id=178

谋事在人 发表于 2011-3-17 17:30:43

谢谢了各位的指导了,这个题目主要考察的就是溢出的这个问题,没有注意到。又看了一遍小甲鱼师傅的视频,终于弄明白了,感激不尽啊。谢谢大伙了。

老张 发表于 2011-3-21 17:36:54

恩,终于明白了。

的的 发表于 2011-3-21 20:34:18

哇塞,又一个仓井空

追梦1航海 发表于 2014-3-17 11:30:53

12345转换成16进制式3039,然后39赋值给i,39对应的10进制是57,

☆﹎尐の潴猪 发表于 2014-4-8 17:26:48

int为2个字节,char为1个字节i=12345D=3039H    c=97D=61H
c=i;//把i的低2位赋值给C,结果为c=39h=57D
      //然后把字符按照%d的格式输出   其结果就为 57 了
页: [1]
查看完整版本: 新手被困难所困扰,忘了解的帮助一下