由于本学期我在物理学校学习了数字系统课程,因此我决定尝试将我们在那里学到的知识应用到我的自学编程实践中。是的,出于某种原因,我们根本不这样做。无论如何,下面是我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int num = 0;
int power = 0; // used to calculate the power of the digit later
vector<int> binVec; // holds binary value
vector<int> decVec; // holds converted dec value
cout << "Input binary number for conversion to its decimal...\n";
while (cin >> num)
{
binVec.push_back(num);
}
for (vector<int>::size_type i = 0; i<= binVec.size(); i++)
{
int temp;
temp = (binVec[i]*2)^power;
decVec.push_back(temp);
if (power = 0)
{
power = 2;
}
else
{
power = power * 2;
}
}
cout << "The decimal value is \n";
for (vector<int>::size_type j = 0; j<= decVec.size(); j++)
{
cout << decVec[j];
}
return 0;
}
不用说,它不会正常工作。一开始我犯了一些愚蠢的错误,但是现在大约半个小时,我正在用它来破解它,我得到了奇怪的输出。例如,当我输入简单的 (10)bin 并期望 (2)dec 时,我得到一串以 2 开头的数字,例如 20006721。此外,当程序运行时,我的编译器会发送一条错误消息。有什么问题?
我知道我的代码很烂而且没有得到很好的优化,所以任何反馈或责骂都将不胜感激!