This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C129ENCPDT:strtol中的错误

Guru**** 2042920 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/565757/ccs-tm4c129encpdt-bug-in-strtol

零件号:TM4C129ENCPDT

工具/软件:Code Composer Studio

您好,

我使用strtol函数将“0xFFFFFFFF”转换为UINT32_t数据。 但是,由于结果超出范围,我收到了一个错误。 通过跟踪函数,我注意到最大结果设置为0xFFFFFF. 请参阅随附的图片。我尝试更改Long_MAX定义,但找不到。

是否有理由将最大值设置为0x07FFFFFF? 如何将其修复为高于0x07FFFFFFF的隐蔽值?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述用户="Peng Peng "]是否有理由将最大值设置为0x07FFFFFF?[/QUOT]

    是的。  这是您可以用32位表示的最大带符号值。  请记住,如果设置了最高有效位,则它是负值。  

    如果需要使用大于0x7FFFFFFF的正值,则必须使用不同的类型。  考虑使用unsigned long或long long。  别忘了从strol转换为strotol或stroll。  

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    George,

    感谢您的提醒。 我想我对0x07FFFFFFF感到困惑。 再次检查代码,即最后一个数字之前的值。 所以现在就有道理了。