如图C语言程序,这个定义一个无符号数a,但是赋了一个-66666的一个负数,但是为什么打印输出也是负数?

问题描述:

如图C语言程序,这个定义一个无符号数a,但是赋了一个-66666的一个负数,但是为什么打印输出也是负数?

有符号数-66666以无符号数存放后为什么输出还会带一个负号?这是实在无法理解了,输出应该没有负号才对啊?
1个回答 分类:综合 2014-12-16

问题解答:

我来补答
%d 格式 输出,就是把 数值 转换 为 有符号数 输出.
unsigned int a = -66666; 内部是 0xfffefb96
按 无符号 输出 要用 格式 %u.
===
体会一下:
unsigned long int a = -66666;
printf("format x:%x\n",a);
printf("format u:%u\n",a);
printf("format d:%d\n",0xfffefb96);
printf("format u:%u\n",0xfffefb96);
 
 
展开全文阅读
剩余:2000