| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:讨论个问题..
只看楼主 加入收藏
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
结帖率:80%
收藏
 问题点数:0 回复次数:9 
讨论个问题..
unsigned int a=5;
int b=-7; 改为-3 在试试...
(a+b>5)?puts(">5"):puts("<=5");

[此贴子已经被作者于2007-5-29 21:01:50编辑过]

2007-05-29 20:43
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 

#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int a=5;
int b=-7;
((int)a+b>5)?puts(">5"):puts("<=5");
getch();
return 0;
}


你运行这个试试
类型问题


2007-05-29 20:56
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
楼上没理解我的意思...
我认为 b=-7或-3 都该输出>5..
然而当b=-3时却输出<=5

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-05-29 21:16
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
printf("%x %x\n",a-3,a-7);
类型转换问题嘛

2007-05-29 21:34
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 

根据运算法则int -7先转化为unsigned int (65535-7+1) 再运算,所以无论是-7,还是-3结果都比5大,但是实际结果不是这样~结论:楼主发现BUG了~


2007-05-29 21:50
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 

为了证明我的正确结论,我试了不同的编译器,结果都一样,难道都有BUG?于是又做了
#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int a=5, b=-7;
(a+b)>a?puts(">5"):puts("<=5");

getch();
return 0;
}或b=-3;结果是同上没改的结果一样,说明unsigned int 比较大小有问题~


2007-05-29 22:01
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 
上面搞错了unsiged不能取负数~

2007-05-29 22:06
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 
奇怪的是不能取负数怎么能编译运行?

2007-05-29 22:09
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 

有结果了int -7先转化为unsigned int (65535-7+1) a+b=65534 int -3先转化为unsigned int (65535-3+1) a+b=2所以楼主你结果就这样得出


2007-05-29 22:18
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
o o o ......


最基本的东西都忘了...
int -3先转化为unsigned int (65535-3+1) a+b=2

谢 老糊涂了哈..

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-05-29 22:25
快速回复:讨论个问题..
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019883 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved