标题:讨论个问题..
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143354-1-1.html




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

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