我正在解决一个 leetcode 问题,它的输出需要是一个没有大量数字的二进制数。
我有十进制数,我试图使用 bitset 进行转换。
我写了一个函数来返回给定数字 n 的位数:
int digitNum (int n){
int digit = 0;
while(n!=0){
n/=2;
digit++;
}
return digit;
}
但是当我调用它时,
int digit = digitNum(res);
result = bitset<digit>(res).to_string();
数字必须是常数。我阅读了 boost::bitset,但看不到如何使用动态位集来解决我的问题。 http://www.boost.org/doc/libs/1_63_0/libs/dynamic_bitset/dynamic_bitset.html
因为它是手动定义每一位的。它不再转换为二进制。