这在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
任何人请帮助
答案 0 :(得分:3)
u
的 printf
转化说明符需要unsigned int
参数,但您传递double
参数,因为-2.2*i
类型为double
。它调用未定义的行为。使用f
说明符打印double
参数。