鱼C论坛

 找回密码
 立即注册
查看: 2959|回复: 11

c 语言的一个问题

[复制链接]
发表于 2012-6-18 22:02:11 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
void main()
{
int i = 12345;
char c = 63;
c = i;
printf("%d\n", c);
}


为什么最后是57,求指教

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-18 22:31:10 | 显示全部楼层
int型的数据在vc++6.0中是32位的(二进制的32位) 上面的12345转成二进制是0000 0000 0000 0000 0011 0000 0011 1001 而char型的变量只能存放8位的二进制数据,赋值时只把12345的低8位赋给c,低8位是0011 1001用计算器转成10进制就是57了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-19 07:37:53 | 显示全部楼层
顶楼上,专家啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-19 09:24:54 | 显示全部楼层
二楼解释的很好很强大!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-19 20:57:23 | 显示全部楼层

嗯嗯嗯嗯嗯嗯嗯嗯嗯~~:kiss:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-20 01:35:07 | 显示全部楼层
我也明白了点 嘿嘿 :lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-20 10:44:43 | 显示全部楼层
听着二楼的解释我也明白了,一开始以为要查ASCII表才知道,看了二楼的解释后才恍然大悟!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-20 16:12:13 | 显示全部楼层
顶,专家级
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 12:07:44 | 显示全部楼层
在32位系统中,int型的数据在vc++6.0中是32位的。int最大值是2的32次, 但是在极个别例子中,64位系统中, int会长于long,这对上面的答案没什么影响,但是如果是往低位机,那么这就造成最后的答案不是57.    在 k&c  是这么定义的只要 short 不超过 int   int 不低于 short   而 long 不低于 int  。   但是long可以与int 相等,   就是因为vc并没继承c99,这也是windows的不足。

所以  上面的程序的答案并不是一定的  只是在大多情况下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 12:09:36 | 显示全部楼层
只是在大多情况下是57
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:37:42 | 显示全部楼层
顶。。学习到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 20:23:15 | 显示全部楼层
二楼正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 06:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表