通过四*是吗
Passing char* to atoi
场景是这样的 -
#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
谁能帮我理解这种转换是如何发生的?
很简单。 uint8_t 的值是 0 到 255。您至少需要 uint32_t(uint16_t 最多 65535)。 224 是适合 8 位整数的真实答案的位。
场景是这样的 -
#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
谁能帮我理解这种转换是如何发生的?
很简单。 uint8_t 的值是 0 到 255。您至少需要 uint32_t(uint16_t 最多 65535)。 224 是适合 8 位整数的真实答案的位。