【发布时间】:2024-01-07 05:21:01
【问题描述】:
我想将字符串转换为有符号整数。以下是要求。我已将十六进制值作为字符串存储在缓冲区中。现在我想将该值转换为带符号的 int。
buf = "fb869e" 将其转换为有符号整数。所以 o/p 应该是 -293218。但是当我尝试使用 strtol 进行转换时,我得到 16483998。那我该怎么办?
【问题讨论】:
-
你从哪里得知 0xfb869e 是 -293218? strtol 其实是对的。
-
我认为它的 C 很明显,他使用的是
strtol()。 -
为什么输出应该是-293218? strtol 返回类型是 long int,顺便说一句。