Prüfsummenbildung!

Status
Nicht offen für weitere Antworten.
N

NEWBIE_99

Gast
Hallo Leute ich versuche die Prüfsumme einer Datei zu erstellen, komme aber mit der Aufgabe / Hinweis des Profs nicht klar....

Prüfsummenbildung
Addieren Sie alle Bytes auf. Nehmen Sie das Ergebnis der Addition bei jedem Schritt modulo
Integer.MAX_VALUE. Stimmt die gespeicherte Prüfsumme mit der der dekomprimierten Daten
überein ist davon auszugehen dass das Passwort korrekt war.


Was soll ich denn mit "modulo Integer.MAX_VALUE" anstellen??

Mein Code:
Code:
		/*
	 * PRÜFSUMME BERECHNEN
	 */
	public int pruefsumme(byte[] byte_array)
	{
		int sum=0;
		
		for(int i=0; i<byte_array.length;i++)
		{
			if(byte_array[i] >= 0)
			{
				sum += byte_array[i];
				//sum = Integer.MAX_VALUE; ????
			}
			
		}
		
		return sum;
	}


DANKE!!!
 

SebiB90

Top Contributor
also so wie ich es verstanden habe sollst du das machen nach jeder addition:
Code:
sum = sum % Integer.MAX_VALUE;
 
B

Beni

Gast
Wenn "sum" ein int ist, ist das wohl ziemlich nutzlos? Wenn ein int überläuft, fängt er halt vom negativen Ende an wieder hochzuzählen.
 

dieta

Top Contributor
Wenn "sum" ein int ist, müsste man schreiben
Code:
    if(sum < 0)
    {
        sum -= Integer.MIN_VALUE
    }
 

Illuvatar

Top Contributor
Naja dieta, das ist ja nicht ganz, was in der Aufgabe steht ;)

Ich würde sagen, das sum %= Integer.MAX_VALUE macht nur sinn, wenn sum ein long ist, und dann später in ein int gecastet wird.
 
Status
Nicht offen für weitere Antworten.

Oben