【发布时间】:2020-04-18 16:46:29
【问题描述】:
如果输入是:
73 68 69 65
输出应如下所示:
0 1 0 0 1 0 0 1 ///73 in binary form
0 1 0 0 0 1 0 0 ///68 in binary form
0 1 0 0 0 1 0 1 ///69 in binary form
0 1 0 0 0 0 0 1 ///65 in binary form
矩阵如上8列,每行包含十进制数的二进制形式。
这是我目前的代码:
int n, x;
cin >> n;
auto A = vector<vector<int>>(n, vector<int>(8)); ///8 columns as mentioned
while (n--)
{
cin >> x;
for (int j = 8; j >= 0; --j) ///inserting the digits for each number
if ((x >> j) & 1)
A[i].emplace_back(1);
else
A[i].emplace_back(0);
}
for (auto rows : A)
{
for (auto elements : rows)
cout << elements << " ";
cout << "\n";
}
我尝试使用按位运算,但使用 vector<vector<int>> 的任何方法都适合我。
如果您能回答,将不胜感激,感谢您的阅读和回答!
还有第二个问题,它显示了 16 位数字 000000000001001001 而不是 01001001,如果输入为 73,则开头有很多零。
【问题讨论】:
-
关心班次和签名号码
-
当您使用调试器运行程序时,您看到了什么?这就是调试器的用途。如果您不知道如何使用调试器,这是一个学习如何使用调试器一次运行一行的好机会,监控所有变量及其值的变化,并分析程序的逻辑执行流程。了解如何使用调试器是每个 C++ 开发人员必备的技能,没有例外。在调试器的帮助下,您应该能够快速找到此程序以及您编写的所有未来程序中的所有错误,而无需向任何人寻求帮助。
-
“这是我目前的代码:” 你有问题吗?
-
i!=j,重新检查它们的使用情况。 -
已经建议您使用调试器。该错误非常简单,应该可以在调试器中轻松观察到。您应该花一些时间学习如何使用调试器,并学习如何在您自己的代码中查找和修复错误,而无需向任何人寻求帮助。这样做不是很有意义吗,而不是在每次程序无法正常运行时向 stackoverflow.com 发布问题并等待数小时或数天?
标签: c++ matrix vector stl binary