鱼C论坛

 找回密码
 立即注册
查看: 2611|回复: 3

[已解决]关于unsigned还能输出负数 的问题

[复制链接]
发表于 2020-3-10 18:32:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图所示为啥还能输出﹣1啊
最佳答案
2020-3-10 19:19:53
你在这行出现了问题:
  1. printf("%d\n", j);
复制代码


你可以看一下小甲鱼的 printf 函数快查的文档:https://fishc.com.cn/forum.php?mod=viewthread&tid=66471&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583

你会发现 %d 是有符号的十进制数字
尽管你的 j 变量是负数,他也是会打印 -1 !

如果你仔细看的话,你会发现 %u 是用来打印无符号的十进制数字的,
如果你使用 %u 那你会发现就不会打印 -1 了。

代码:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i;
  5.         unsigned int j;
  6.        
  7.         i = -1;
  8.         j = -1;
  9.        
  10.         printf("%d\n", i);
  11.         printf("%u\n", j);
  12.        
  13.         return 0;
  14. }
复制代码


哦,对了,你发的贴子写错位置了,应该写在 C/C++ 版块里!
QQ图片20200310183152.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 18:39:11 | 显示全部楼层
你把j改成-2应该也是-1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 18:45:17 | 显示全部楼层
为什么不能输出 -1   ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 19:19:53 | 显示全部楼层    本楼为最佳答案   
你在这行出现了问题:
  1. printf("%d\n", j);
复制代码


你可以看一下小甲鱼的 printf 函数快查的文档:https://fishc.com.cn/forum.php?mod=viewthread&tid=66471&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583

你会发现 %d 是有符号的十进制数字
尽管你的 j 变量是负数,他也是会打印 -1 !

如果你仔细看的话,你会发现 %u 是用来打印无符号的十进制数字的,
如果你使用 %u 那你会发现就不会打印 -1 了。

代码:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i;
  5.         unsigned int j;
  6.        
  7.         i = -1;
  8.         j = -1;
  9.        
  10.         printf("%d\n", i);
  11.         printf("%u\n", j);
  12.        
  13.         return 0;
  14. }
复制代码


哦,对了,你发的贴子写错位置了,应该写在 C/C++ 版块里!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 12:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表