#include <stdio.h>
#include <stdlib.h>
int main ()
{
   int a1 = 1234, a2 = -1234;
   unsigned int b1 = 5678, b2 = -5678;

   printf("a1=%d, a1(u)=%u\n", a1, a1);
   printf("a2=%d, a2(u)=%u\n", a2, a2);
   printf("b1=%d, b1(u)=%u\n", b1, b1);
   printf("b2=%d, b2(u)=%u\n", b2, b2);

   return 0;



}.h>.h>


.h>.h>

 无论变量声明为有符号数还是无符号数,只有当以 %u 格式输出时,才会作为无符号数处理;如果声明为 unsigned 却以 d% 输出,那么也是有符号数。.h>.h>

不管是否有符号,%o、%x、%X、%#o、%#x、%#X 都是以无符号形式输出,可以亲自测试。.h>.h>