我尝试将int除以unsigned int,但是得到了意外的结果:
相同的方法对于“+”、“-”和“*”都可以正常工作,但是对于“/”则失败了。我在这里错过了什么?
附注:
已在不同的编译器上进行了测试,结果相同。
int b;
unsigned int c;
int res;
float res_f;
b = -25;
c = 5;
res = b / c; // res = 858993454
res_f = b / c; // res_f = -5.000000
相同的方法对于“+”、“-”和“*”都可以正常工作,但是对于“/”则失败了。我在这里错过了什么?
附注:
已在不同的编译器上进行了测试,结果相同。
c
设置为unsigned short
也可以。 - aaz