带有浮点的无符号int

时间:2014-05-22 17:17:10

标签: c int unsigned

这在C

中是这样的
unsigned int i=-1;
print("%u",i);

输出是1的全部两个补码 但是当我使用

print("%u",-1*i);//displays the answer 1 i guess it uses i as signed int
print("%u",-2.2*i);//displays 2575826944

任何人请帮助

1 个答案:

答案 0 :(得分:3)

带有u

printf转化说明符需要unsigned int参数,但您传递double参数,因为-2.2*i类型为double。它调用未定义的行为。使用f说明符打印double参数。