C++ 如何获取给定uint512\t整数的二进制等效字符串

C++ 如何获取给定uint512\t整数的二进制等效字符串,c++,integer,C++,Integer,我使用的是uint512\u t,我也尝试过使用位集库,但它不适用于像uint512\u t这样的大整数。我如何转换它 这是我尝试过的,但没有成功 #include <iostream> #include <boost/multiprecision/cpp_int.hpp> #include <string> using namespace boost::multiprecision; int main(){ uint512_t num(&

我使用的是
uint512\u t
,我也尝试过使用位集库,但它不适用于像
uint512\u t
这样的大整数。我如何转换它

这是我尝试过的,但没有成功

#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
#include <string>

using namespace boost::multiprecision;

int main(){
        uint512_t num("11579208923731619542357098500868790785326998466564056403945758400790883467166");     
        std::string binNum = std::bitset<512>(num).to_string();        
        
        return 0;
}
#包括
#包括
#包括
使用名称空间boost::multiprecision;
int main(){
uint512_t num(“1157920892373161954235709850086879078532699846656403945758400790883467166”);
std::string binNum=std::bitset(num).to_string();
返回0;
}

可能有更优雅的方法来实现这一点,但我找不到任何方法,所以就这样吧

您可以使用位掩码逐位提取并将其放入
位集中


很抱歉,“有没有……的图书馆”这样的问题是离题的。还不清楚“字节串”是什么意思。可能是十六进制字符串?不是字符串的十六进制,而是python中类似bin()的东西?您的代码不会编译,因为没有传递给
num
构造函数的整数那么大。@PaulMcKenzie忘了将其放入“”也请看-它可以提供更好的答案,但正如我所说的,我无法计算出来。
#include <boost/multiprecision/cpp_int.hpp>

#include <bitset>
#include <iostream>

int main() {
    using namespace boost::multiprecision;

    uint512_t num("11579208923731619542357098500868790785326998466564056403945758400790883467166");
    std::bitset<512> b;

    size_t idx = 0;
    while(num) {                   // loop for as long as "num" isn't zero
        b[idx++] = (num & 1) != 0; // check the least significant bit
        num >>= 1;                 // shift down by one
    }

    // print the result
    std::cout << b << '\n';
}
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100101111111111111111111111110011110