小编Cod*_*ent的帖子

我的 VS 2022 无法处理超过 32 位的位集

我试图将 45 位二进制数转换为十六进制数,但在编译时出现溢出错误,但在在线 C++ 编译器上应用代码时,它可以工作。我的平台是X64。请提供任何帮助。

int main()
{
    stringstream ss;
    string binary_str("111000000100010010100000110101001000100011000");
    bitset<45> n(binary_str);

    string f;
    ss << hex << n.to_ulong() << endl;  // error happens here 
    f = ss.str();
    cout << f;
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

当在在线 C++ 编译器上编译上面的代码时,我得到了正确的结果,即 OX1c08941a9118。

c++ bitset

2
推荐指数
1
解决办法
76
查看次数

标签 统计

bitset ×1

c++ ×1