gpt4 book ai didi

c++ - 为什么输出显示为无符号数

转载 作者:行者123 更新时间:2023-11-30 02:36:08 26 4
gpt4 key购买 nike

我正在使用 sscanf 函数将无符号数组转换为整数,但我得到的是无符号数??

int arr[3];
unsigned char* tmp = "1223FFFF2222;
for (int i = 0; i < 3; i++){
sscanf((const char*)tmp, "%4x", &arr[i]);
tmp += 4;
}
std::cout << "X: " << std::dec << arr[1] << " ";

OUTPUT X: 65535 , 应该是-1

最佳答案

很可能是因为您的整数超过 16 位宽。 0x8000-0xffff 范围内的二进制补码对于 16 位数字只会是负数。

对于 32 位(甚至 64 位)整数的更可能情况(现在),它只是一个很小的正数。

关于c++ - 为什么输出显示为无符号数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081427/

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