나는 최대 256 자리의 n 자릿수의 무작위 이진수를 생성하는 방법을 만들었습니다. 내 프로그램을 계속하려면 이진 값으로 벡터를 가져와 십진수 배열에 넣은 다음 해당 숫자를 십진수 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 숫자는 숫자 , 숫자 표현은 숫자 표현입니까? 나는 10 개의 손가락과 10 개의 발가락을 가지고 있고, 20 BTW를 기본으로 선호한다. –
@ ClaytonTM9 당신은 큰 hypo가 보인다. –
@ ClaytonTM9-1)'int len = binary.size(); int a = binary [len];'이것은 C++가 유효하지 않습니다. 배열은 항목의 수로 상수를 사용하여 선언해야합니다. 2)'pow (2, len-i-1)'- [지수가 정수가 될 경우]'pow'를 사용하지 마십시오 (http://stackoverflow.com/questions/25678481/why-does-pown- 2-return-24-when-n-5-with-my-compiler-and-os) – PaulMcKenzie