将 char* 传递给 atoi [重复]
Posted
技术标签:
【中文标题】将 char* 传递给 atoi [重复]【英文标题】:Passing char* to atoi [duplicate] 【发布时间】:2021-06-09 16:52:01 【问题描述】:这是场景 -
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main()
uint8_t backoff;
char* value = "300000";
backoff=atoi(value);
printf("value = %s\n", value);
printf("backoff value = %d\n", backoff);
return (0);
输出为 -
value = 300000
backoff value = 224
有人可以帮我了解这种转换是如何发生的吗?
【问题讨论】:
300000 不适合uint8_t
。
300000 == 0x493e0。 224 == 0xe0
【参考方案1】:
很简单。 uint8_t 的值为 0 到 255。您至少需要 uint32_t(uint16_t 最大 65535)。 224 是适合 8 位整数的真实答案的位。
【讨论】:
以上是关于将 char* 传递给 atoi [重复]的主要内容,如果未能解决你的问题,请参考以下文章