我必须创建一个表,显示值1到127转换为二进制和十进制,如this:
十六进制和八进制是可选的。
这是我到目前为止所拥有的:
using namespace std;
int main() {
int dec;
int binary_array [128];
for (dec = 0; dec<128; dec++){
for (int I =0; I < 7; i++){
binary_array[i]= dec % 2;
cout<<binary_array[i];
dec = dec / 2;
}
}
}
答案 0 :(得分:0)
您可以使用bitset
将十进制转换为二进制,然后打印出结果。
#include <iostream>
#include <bitset>
using namespace std;
int main() {
for(int i = 0; i <= 127; i++)
{
cout << i << " " << bitset<8>(i) << endl;
}
return 0;
}
修改强>
由于不能使用bitset
,因此请分析您的代码并了解其中的错误。
using namespace std;
int main()
{
int dec;
int binary_array [128];
for (dec = 0; dec<128; dec++)
{
for (int I =0; I < 7; i++)
{
binary_array[i]= dec % 2; <--OK
cout<<binary_array[i]; <-- NOT OK, think carefully
dec = dec / 2; <-- OK
}
//now you have exited for loop, what is the value of dec?
//think what happened to dec in the second for loop
//your current logic will create a infinite loop
}
}
你的逻辑是正确的道路,如果你仔细思考,你将能够自己做,并感觉良好,而不是复制可用的解决方案,而不试图了解出了什么问题。我建议你努力思考并实施。如果您仍然无法解决问题,请随时发布更新的代码并告知我们。