| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 364 人关注过本帖
标题:]求助 char a=1025;printf("%d",a); 输出结果为什么是1.????
收藏  订阅  推荐  打印
tcjian
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-7-20
]求助 char a=1025;printf("%d",a); 输出结果为什么是1.????

求助  char a=1025;printf("%d",a); 输出结果为什么是1.????
2008-7-20 18:55
qxykzx
Rank: 1
等级:新手上路
帖子:26
积分:380
注册:2008-7-17
我是这样想的

用char定义char a=65和char a=A是等效的
当输出为printf("%d",a); 输出65
当输出为printf("%c",a); 输出A
这是asc码
至于等于1的问题,楼主可以试下你原来程序,a=0~127,a为本身
a=128,则输出a=-128
a=129,则输出a=-127
a=130,则输出a=-126
依次类推,不知道我说明白没有,大家共同努力呀!!!
2008-7-20 20:13
独孤小梦
Rank: 3Rank: 3
等级:中级会员
帖子:255
积分:2958
注册:2008-6-5

下面一节是补码?

编程小菜
2008-7-20 20:18
iFreeBSD
Rank: 3Rank: 3
等级:中级会员
帖子:238
积分:2862
威望:2
注册:2007-11-5

1025 mod 256

The FreeBSD is best!!!
2008-7-20 21:01
coming
Rank: 3Rank: 3
等级:中级会员
帖子:238
积分:2558
注册:2008-4-20

大概要是比那个大的话就循环了 就像楼上说的~~~不过哪高手能给一个精确的解释
2008-7-20 21:53
chengli
Rank: 1
等级:新手上路
帖子:25
积分:436
注册:2008-7-3
这样的

1025 == 0x401  二进制为 0100 0000 0001
char 类用的变量只有8为  0x401已经使变量的值溢出了,  取后面8位
所以说输出 1
2008-7-21 20:11
蓝色神话
Rank: 3Rank: 3
等级:中级会员
帖子:371
积分:3858
威望:1
注册:2006-5-11

楼上解释已经很清楚了!
2008-7-21 20:20
共有 363 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053512 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved