gpt4 book ai didi

c++ - libjson 是否支持 64 位 int 类型?

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:15 24 4
gpt4 key购买 nike

我正在尝试使用 json.push_back 调用将 64 位整数数据推送到 JSONNode

    uint64_t myHigh = 0x10;          
uint64_t myLow = 0x12;
uint64_t myFinal = 0;


myFinal = (myHigh << 32) | myLow ;

std::cout << "val = 0x" << std::hex << myFinal << "\n";-----(1)
JSONNode jvData;

jvData.push_back(JSONNode("value",myFinal));
std::cout<<jvData.write();--------------------------(2)

cout(1)给出的值为0xa0000000ccout (2) 显示值 12。

我希望 cout (2) 的值为 42949672972 但似乎没有按预期工作

Json支持64位int吗??

最佳答案

64 位整数不能用 JSON 表示,因为 JavaScript 在内部将值编码为 64 位浮点值 (http://ecma262-5.com/ELS5_HTML.htm#Section_8.5)。

因此,您只能使用 53 位精度 (2^53)。

如果你想交换 64 位整数,你可以使用字符串或将 64 位整数拆分为两个 32 位整数,然后重新组合它们(What is the accepted way to send 64-bit values over JSON?)。

关于c++ - libjson 是否支持 64 位 int 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809932/

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