【发布时间】:2017-01-31 18:56:31
【问题描述】:
我创建了一种方法来生成具有 n 位最多 256 位的随机二进制数。为了继续我的程序,我需要将向量与我的二进制值一起放入十进制数组中,然后将该数字转换为 int 十进制。这是创建随机二进制向量的以下函数以及我尝试转换为十进制的函数。我在将二进制向量转换为十进制时遇到问题。
int random_binary(int n, int m){
vector<int> binary;
for(int i = 0; i < n; i++)
{
m = rand() % 2;
binary.push_back(m);
}
binary.push_back(1);
int j;
for(j = 0; j < binary.size(); j++)
{
cout << binary[j];
}
cout <<"\n";
int len = binary.size();
int a = binary[len]; //having trouble right here
int decimalValue = 0;
for (int i = len-1; i>= 0; i--)
{
decimalValue = decimalValue + binary[i]*pow(2,len-i-1);
}
return decimalValue;
}
如果有人能帮助解决这个问题,将不胜感激。
【问题讨论】:
-
Errr,数字是数字,数字表示是数字表示?我更喜欢以 20 为底的 BTW,有十个手指和十个脚趾。
-
@ClaytonTM9 看来你有一个严重的缺陷。
-
@ClaytonTM9 -- 1)
int len = binary.size(); int a = binary[len];这不是有效的 C++。数组必须使用常量作为条目数来声明。 2)pow(2,len-i-1)-- 如果exponent will be an integer@,则不要使用pow
标签: c++ arrays vector binary decimal