作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/15 22:50:19
如图C语言程序,这个定义一个无符号数a,但是赋了一个-66666的一个负数,但是为什么打印输出也是负数?

有符号数-66666以无符号数存放后为什么输出还会带一个负号?这是实在无法理解了,输出应该没有负号才对啊?
如图C语言程序,这个定义一个无符号数a,但是赋了一个-66666的一个负数,但是为什么打印输出也是负数?
%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);