返回信息流☆─────────────────────────────────────☆
xiaofu (FUYF) 于 (Mon Jun 23 18:33:16 2008) 提到:
int a=-1;
unsigned b=unsigned(0xffffffff);
if(a==b)
判断为true.
为什么????
☆─────────────────────────────────────☆
zhaotong (hotter) 于 (Mon Jun 23 18:38:52 2008) 提到:
补码~
☆─────────────────────────────────────☆
xiaofu (FUYF) 于 (Mon Jun 23 18:57:58 2008) 提到:
那把int和 unsigned 改成 short 和 unsigned short
为什么a==b 为假?
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Mon Jun 23 19:13:00 2008) 提到:
两个数都被提成了int型
☆─────────────────────────────────────☆
purevirtual (天之健|杨无敌) 于 (Mon Jun 23 23:24:58 2008) 提到:
位数的问题吧
【 在 xiaofu (FUYF) 的大作中提到: 】
: 那把int和 unsigned 改成 short 和 unsigned short
: 为什么a==b 为假?
☆─────────────────────────────────────☆
hongkevin (love maggie) 于 (Tue Jun 24 15:26:12 2008) 提到:
应该是两个都被提成unsigned吧
unsigned比int宽
【 在 rebirthatsix 的大作中提到: 】
: 两个数都被提成了int型
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Tue Jun 24 16:08:28 2008) 提到:
【 在 hongkevin 的大作中提到: 】
: 应该是两个都被提成unsigned吧
: unsigned比int宽
昂?ms没有必要把short提成unsigned吧
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Tue Jun 24 16:12:14 2008) 提到:
借cpp primer一段
在进行整值提升时类型char signed char unsigned char 和short int 都被提升为类型
int
如果机器上的m 型足够表示所有 unsigned short 型的值这通常发生在 short 用半个字
而int 用一个字表示的情况下则unsigned short int 也被转换成int 否则它会被提升为
unsigned int
short 2bytes,int 4bytes,所以没有必要将unsigned short转化成unsigned int,将两数均转为int
☆─────────────────────────────────────☆
hongkevin (love maggie) 于 (Tue Jun 24 17:11:04 2008) 提到:
int a=-1;
unsigned b=unsigned(0xffffffff);
if(a==b)
。。。。
b明显是4字节阿,通常unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int
int + unsigned int则两个都变成unsigned int
【 在 rebirthatsix 的大作中提到: 】
: 借cpp primer一段
: 在进行整值提升时类型char signed char unsigned char 和short int 都被提升为类型
: int
: ...................
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Tue Jun 24 17:13:37 2008) 提到:
【 在 hongkevin 的大作中提到: 】
: int a=-1;
: unsigned b=unsigned(0xffffffff);
: if(a==b)
: ...................
额,我说的是lz在后面问,为什么short不相等,哈哈
嗯,前面的这个没错,是unsigned
☆─────────────────────────────────────☆
xiaofu (FUYF) 于 (Tue Jun 24 23:29:28 2008) 提到:
作比较运算时也要作类型转换,提升为 int?
为什么不检查操作数的类型是否相同?
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Wed Jun 25 00:28:53 2008) 提到:
【 在 xiaofu 的大作中提到: 】
: 作比较运算时也要作类型转换,提升为 int?
: 为什么不检查操作数的类型是否相同?
额,这个你应该去问c++规则的开发者,呵呵
我觉得这个是因为需要设置一个中间值作为变换不同类型的标准
这是一条镜像帖。来源:北邮人论坛 / cpp / #25833同步于 2009/7/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[合集] int 这么特殊
shenlei
2009/7/3镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。