00问答网
所有问题
C语言的一道题
main()
{int x=321;
char y;
y=x;
printf("%d,%c\n",y,y);}
结果是65,A 能告诉我是怎么算出来的吗
举报该问题
推荐答案 2006-10-15
刚和同学讨论出答案,回答后发现还是答晚了~~~
由于ASCII表有从0—255,一共226个字符。你把321赋值给y,但y是字符型。所以,相当于是把ASCII码值为321的字符赋值给y。数据要溢出,于是有321-226=65,所以y此时的值为65 。又“A”的ASCII值为65。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DrInrTBZ.html
其他回答
第1个回答 2006-10-15
321 的2进制编码是101000001,char型只取后8位,01000001,换算成10进制就是65,所以结果是65
第2个回答 2006-10-15
char y;
中y最大是255
当把int x=321赋给y时
溢出321-255=65
65在char里表示的是A
也就会有这个结果
第3个回答 2006-10-15
在普通的intel32位机器上,int占用2个字节,
char占用一个字节,而intel处理器为小端模式,
也就是,在内存中类似下面的情况
地址:3220313827 3220313828
值: 01000001 00000001
x的地址为3220313827,y的地址也为3220313827
明白了吧?
其实这样的程序没有任何意义,因为在不同的硬件平台上的结果可能是不一样的,甚至换一个编译器都可能不一样。
http://herofit.blogspot.com/
第4个回答 2006-10-15
int i=321那么i在计算机中占16个bit即000000101000001
char y那么y在计算机中占8个bit也就是i的后八位01000001所以y是65
后面,我就不说了啊!
第5个回答 2006-10-15
是不同数据类型间付值的问题,就是把整型321付给字符型的y,然后显示y的值,因为字符型最大为255,也就是2进制的11111111,所以溢出,用321-255=65,所以y值是65,这个是第一个显示整形的结果,另外字符型结果就是因为“A”的ascll码的值为65.
相似回答
C语言
初学者请问这
道题
怎么做?
答:
遍历字符串S,使用数组统计其中26个字母分别出现的次数 最终最少的字母出现次数即为可以召唤的神龙数 再乘以n就是可以实现的愿望数
C语言
参考代码如下:include <stdio.h> int main(){ long long int n; // 注意n的取值范围超过了2^31-1,应取长整型 scanf("%lld", &n);char S[1000000];s...
问一下
C语言
这
道题
怎么做?
答:
int x1,x2;scanf("%d/%d %d/%d",&a,&b,&
c
,&d);sum=(b*d)/gcd(b,d);//通分,求两个分母的最小公倍数(求和之后的分母)x1=(sum/b)*a;//通分后,第一个分子 x2=(sum/d)*c;//通分后,第二个分子 ans=x1+x2;//分子之和 if(ans%sum==0){//分子可以整除以分母 (分母...
C语言
有
一道题
该如何解答?
答:
对整数来说,
C语言
认为:0为假,非0为真,所以:(x==a)&&(y=b)&& 0为假。“假”在C语言中按整数输出就是0。有一条很实用的编程经验:写&&表达式时,将最有可能为假的条件写在最左边,因为&&从左向右运算,即检查条件,只要遇到某条件为假,就不会再往后继续,因为已可以判定这个表达式结...
别人问我
C语言的一道题
,好久不接触,忘得差不多了?
答:
int main(){ int i,sum=0;//i从
1
到9的奇数 for(i=1;i<=10;i+=2){ /*同时满足不能被2和3整除,不执行以后的代码,i%2在这里多余,因为i是奇数。这里只考虑3和9能被3整除,会执行以后的sum=3+9=12*/ if(i%2 && i%3)continue;sum+=i;} printf("%d\n",sum);return0;} ...
大家正在搜
世界上最难的一道题
c语言是什么语言
我有一道题不会
这一道题怎么做
一道题
这一道题怎么写
一年级智力题100道
一道数学题难倒13亿人
科目四一道题多少分