鱼C论坛

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

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

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

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

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

x
如图所示为啥还能输出﹣1啊
最佳答案
2020-3-10 19:19:53
你在这行出现了问题:
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 了。

代码:
#include <stdio.h>

int main()
{
        int i;
        unsigned int j;
        
        i = -1;
        j = -1;
        
        printf("%d\n", i);
        printf("%u\n", j);
        
        return 0;
}

哦,对了,你发的贴子写错位置了,应该写在 C/C++ 版块里!
QQ图片20200310183152.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 18:39:11 | 显示全部楼层
你把j改成-2应该也是-1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 18:45:17 | 显示全部楼层
为什么不能输出 -1   ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 19:19:53 | 显示全部楼层    本楼为最佳答案   
你在这行出现了问题:
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 了。

代码:
#include <stdio.h>

int main()
{
        int i;
        unsigned int j;
        
        i = -1;
        j = -1;
        
        printf("%d\n", i);
        printf("%u\n", j);
        
        return 0;
}

哦,对了,你发的贴子写错位置了,应该写在 C/C++ 版块里!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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