【发布时间】:2017-03-01 15:43:03
【问题描述】:
我想制作一个简单的程序,它将从输入中获取位数,并作为输出显示二进制数,写在给定的位上(例如:我输入 3:它显示 000、001、010、011 , 100, 101, 110, 111)。 我遇到的唯一问题是在第二个 for 循环中,当我尝试在 bitsetbits> 中分配变量时,它需要常量数字。 如果您能帮助我找到解决方案,我将非常感激。 代码如下:
#include <iostream>
#include <bitset>
#include <cmath>
using namespace std;
int main() {
int maximum_value = 0,x_temp=10;
//cin >> x_temp;
int const bits = x_temp;
for (int i = 1; i <= bits; i++) {
maximum_value += pow(2, bits - i);
}
for (int i = maximum_value; i >= 0; i--)
cout << bitset<bits>(maximum_value - i) << endl;
return 0;
}
【问题讨论】:
-
该问题的答案取决于编译时已知的数字。不适合 OP 的需要。
-
除非您需要使用
std::bitset,否则您可以使用stackoverflow.com/questions/23173261/…中的解决方案。 -
我想尝试一下简单的方法。我可以通过其他方式做到这一点。我只是想知道是否有一个小故障可以让它工作
标签: c++ bitset std-bitset