gpt4 book ai didi

将字符串转换为有符号整数

转载 作者:太空狗 更新时间:2023-10-29 15:30:50 24 4
gpt4 key购买 nike

我想将字符串转换为带符号的整数。以下是要求。我已将十六进制值作为字符串存储在缓冲区中。现在我想将该值转换为有符号整数。

buf = "fb869e" 将其转换为有符号整数。所以 o/p 应该是 -293218。但是当我尝试使用 strtol 进行转换时,我得到的是 16483998。那我该怎么办?

最佳答案

十六进制数 0xfb869e 不是负数。内置的数字转换函数不会将其转换为负值,因为它的值为正数。

你的意思是,这是 24 位 2s 补码负数的无符号十六进制等价物,你想要那个数字。获取方法是将其转换为正数,然后使用计算将其转换为等效的 24 位 2s 补码:

char *buf = "fb869e";
long n;

n = strtol(buf, NULL, 16);
if (n > 0x7fffffL)
n -= 0x1000000L;

关于将字符串转换为有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792610/

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