Sonar ha scritto:
Farò pure una figuraccia ma quello che hai scritto per me è arabo. Non ho la minima idea di cosa sia il crc-32. Ho dato uno sguardo veloce su Google .
Sono un programmatore Java. È grave? Abbi pazienza, io a 20 anni a quest’ora ero chino sul manuale di Diritto Costituzionale.
Non c'è nulla di male, è solo per dare una vaga idea che (quasi sempre, non sempre) i "programmatori" si convincono che il mondo della... programmazione siano le 4 cazzatelle che fanno di solito.
Attenzione, non c'è nulla di male in questo.
Provo a riformularlo in termini più facili ( )
CRC-32 è (cuttone) un "qualcosa" che, dato in input una sequenza di byte, dà in output un intero a 32 bit
Come e perchè lo faccia non ci interessa (in realtà sì, ma per adesso no).
Dunque uno potrebbe dire
dammi la funzione int crc32(vettore di byte) la quale, magicamente, dato un vettore di qualcosa mi ritorna il crc32.
La copio da internet [approccio tipico odierno]
Gli passo un vettore di zeri, e questa mi darà il risultato.
OK, questo è l'approccio diciamo così "bimbominkia" (cioè programmatore zero esperienza).
Quello con un minimo di esperienza inizierà a porsi dei problemi
1) come faccio a creare un vettore di zeri poniamo da un terabyte e poi passarlo alla funzione?
2) quanto tempo impiegherà la funzione a calcolare questo codice, se gli passo un vettore da un terabyte?
3) quanto tempo impiegherà la funzione, se essa verrà chiamata un migliaio di volte, tipo
for i=0; i<10000;i++
crc32(vettore-di-zeri)
Ora lasciamo stare il fatto che non sappia cosa sia CRC32 (lo puoi imparare da google, ci sono 1 milione di articoli, paper, esempi, tutto quello che ti pare), vediamo come affronteresti la questione 1-2-3
Lì si vede, o almeno io vedrei, subito la differenza tra un 25 e un 50enne
EDIT: ecco qua per darti un'idea
import java.util.zip.CRC32;
// Calculates CRC32 checksum for a string
public class CRC32Generator {
public static void main(String[] args) {
String input = "Hello World!";
CRC32 crc = new CRC32();
crc.update(input.getBytes());
System.out.println("input:"+input);
System.out.println("CRC32:"+crc.getValue());
}
}
Ti aiuto anche di più, ti do questo
https://docs.oracle.com/javase/8/docs/api/java/util/zip/CRC32.html