为什么无符号x x=-x x怎么变成有符号的了
- C/C++ code
#include "stdio.h" int main() { unsigned int x= 2147483648; x =-x; printf("%d\n",x);}[解决办法]
楼主知道%d是什么意思么?
[解决办法]
%u
[解决办法]
不是变成有符号的了,是因为被你强制作为有符号数输出了。要用printf打印无符号整数,应该用“%u”。
printf这种变参函数无法保证类型安全,你让它打印成什么它就打印成什么,你还可以试试“%x”、“%p”。甚至“%s”、“%f”,只是程序可能崩溃。