gpt4 book ai didi

c - 在 C 中打印 unsigned int 变量的错误值

转载 作者:行者123 更新时间:2023-11-30 20:42:52 25 4
gpt4 key购买 nike

我用C写了这个小程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned int un_i = 1112;
printf ("%d and %d", (1 - un_i), (1 - un_i)/10);
return 0;
}

我的期望是:“-1111 和 -111”

但我的结果是:“-1111 和 429496618”

我不知道为什么它打印出 429496618 而不是 -111。请帮我解释一下

我使用 gcc 版本 4.4.7 和操作系统 centos,内核为 2.6.32

非常感谢!

最佳答案

因为un_iunsigned int类型,所以它不代表负值。如果您期望结果为负,则需要有符号类型,例如 int,请尝试以下操作:

unsigned int un_i = 1112;
printf ("PRINTF: un_i[%d] and u_i/10[%d]\n", (1 - un_i), (1 - (int)un_i)/10);

关于c - 在 C 中打印 unsigned int 变量的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com