新手被困难所困扰,忘了解的帮助一下
#include <stdio.h>void main()
{
charc= 97;
int i=12345;
c=i;
printf("%d\n",c);
}
输出的结果为什么是57呢,知道是各种量之间的转换,但是一点思路都没有,希望有知道的大侠们告诉一下详细的过程。谢谢了 提示1,int 类型占四个字节,char类型占一个字节;
提示2,计算机看到的都是二进制形式。 回复 2# 小甲鱼
太有才了 参照一下看看吧http://home.fishc.com/space.php?uid=100019&do=blog&id=178 谢谢了各位的指导了,这个题目主要考察的就是溢出的这个问题,没有注意到。又看了一遍小甲鱼师傅的视频,终于弄明白了,感激不尽啊。谢谢大伙了。 恩,终于明白了。 哇塞,又一个仓井空 12345转换成16进制式3039,然后39赋值给i,39对应的10进制是57, int为2个字节,char为1个字节i=12345D=3039H c=97D=61H
c=i;//把i的低2位赋值给C,结果为c=39h=57D
//然后把字符按照%d的格式输出 其结果就为 57 了
页:
[1]