我創建了一個方法來生成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順便說一句,有十個手指和十個腳趾。 –
@ ClaytonTM9你似乎有一個主要的低音。 –
@ ClaytonTM9 - 1)'int len = binary.size(); int a = binary [len];'這是無效的C++。數組必須使用常量作爲條目數來聲明。 2)'pow(2,len-i-1)' - 如果[exponent是一個整數],不要使用'pow'(http://stackoverflow.com/questions/25678481/why-does-pown- 2-return-24-when-n-5 -with-my-compiler-and-os) – PaulMcKenzie