gpt4 book ai didi

c - 打印无符号短值

转载 作者:太空狗 更新时间:2023-10-29 16:47:01 25 4
gpt4 key购买 nike

  unsigned short a;
char temp[] = "70000";
a = atoi(temp);
printf("a: %d\n", a);

给我输出 a: 4464 而它应该是 a: 70000 有没有更好的方法将 ASCII 转换为十进制? unsigned short 的范围是 0 - 65535

最佳答案

作为schnaader said ,您可能遇到了溢出问题。

但是在回答有关输出无符号值的 printf 问题时,您需要 u 修饰符(表示“无符号”)。在这种情况下,正如 Jens 在下面指出的那样,您需要 %hu:

printf("a: %hu\n", a);

...虽然只是 %u(unsigned int,而不是 unsigned short)可能也可以工作,因为 short 在为 printf 压入堆栈时将提升为 int

但同样,只有当值 70000 适合您平台上的 unsigned short 时。

关于c - 打印无符号短值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134779/

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