내가 계산할 수있는 해시의 수를 알아 내려고했습니다. SHA-512 (512 비트 출력의 SHA-2)를 사용하고 있습니다. 이 Hashfunction을 코딩하지는 않았지만, 테스트를 위해 불량한 루프를 수행했습니다. 나는 C++에 대해 아직 익숙하지 않기 때문에 다음과 같은 상황이 발생하는 이유를 알지 못합니다.for-lops는 C++에서 어떻게 작동합니까? 예 : 계산 해시
프로그램을 실행했을 때 계산 시간이 오래 걸렸습니다. 내가 처음으로 몇 초 동안 약 10000 개의 해시를 가지고 있었지만, 몇 시간 후에 1000 개의 해시를 계산하는 데 약 1 분이 걸렸습니다. 아무도 왜 나에게이 문제를 "해결할 수 있습니까?" 출력은 다음과 같습니다
int fortschritt = 0;
int prozent = 0;
string temp;
stringstream convert;
string loeschen;
for (int i = 1; i <= 4294967295; i++)
{
convert << i;
temp = convert.str();
loeschen = sha512(temp);
if (((int)(i/1000)) > fortschritt)
{
fortschritt = (int)(i/1000);
if (((int)(i*100)/4294967295) > prozent)
{
prozent = ((int)(i*100)/4294967295);
}
cout << fortschritt*1000 << " von 4294967295 - " << prozent << " %" << endl;
}
}
:
는이, 난 관련 코드 추측 내가 내가 변수를 사용하는 방법과 함께 할 수있는 뭔가가 생각
1000 von 4294967295 - 0 %
2000 von 4294967295 - 0 %
3000 von 4294967295 - 0 %
4000 von 4294967295 - 0 %
5000 von 4294967295 - 0 %
6000 von 4294967295 - 0 %
7000 von 4294967295 - 0 %
8000 von 4294967295 - 0 %
9000 von 4294967295 - 0 %
10000 von 4294967295 - 0 %
[...]
,하지만 난 확실하지 않고 올바르게 수행하는 방법도 없습니다. 어리석은 질문이라면 용서해주세요.하지만 당분간 저를 괴롭혔습니다. 당신의 convert
스트림이 새로운 값을 매번 추가, 각 반복에 대해 지속적으로 성장처럼 어떤 도움 :) 사전에
덕분에
존
이러한 모든 나누기는 프로그램에 건강하지 않습니다. 다시 초기화하면 fortschritt에 들어가기 위해 1000으로 이동하는 추가 카운터 j를 만드십시오. – Surt