gpt4 book ai didi

将 Long 转换为 Unsigned Short Int/Strtol

转载 作者:行者123 更新时间:2023-11-30 20:19:37 31 4
gpt4 key购买 nike

没有编译错误。然而,结果并非预期。我怀疑将 long 转换为 unsigned Short int 导致了错误。我怎样才能安全地将十六进制的多头转为空头?【需求:将一行字符串(有数字)转换为unsigned Short int】谢谢!

unsigned short int str_to_bin (char* instr_bin_str) {
unsigned short int i = 0;
long j;
char* ptr;

j = strtol (instr_bin_str, &ptr, 10);

if (j == 0) {
fprintf (stderr, "error6: str_to_bin() failed");
return 6;
}

i = (unsigned short) j;
printf("State: 0x%X \n", i);

return i;
}

最佳答案

您传入的字符串是数字的二进制表示形式。但是,当您调用 strtol 时,您将为第三个参数传递 10,这意味着它需要十进制表示形式的字符串。

如果您期望二进制,则需要告诉 strtol 期望:

j = strtol (instr_bin_str, &ptr, 2);

关于将 Long 转换为 Unsigned Short Int/Strtol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49600855/

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