Hallo Alexander,
6GB Nullen bekommt man auch in 6 Bytes unter, wenn sie lückenlos dastehen.
Also mir reichen 5 Byte:
echo ceil(log(6*1024*1024*1024, 2));
kleines Missverständnis. :-)
Es reichen 5 Byte (40bit), um die Dateigröße 6GB darzustellen. Aber nicht, um die Information "6GB groß, und alles Nullbytes" zu vermitteln. Dafür brauchst du zusätzlich zum "Zähler" noch die Angabe des Bytewerts, der so häufig wiederholt werden soll. Bei gängigen RLE-Codierungen wäre das also eine Art Escape-Zeichen (in der Regel ein bestimmter festgelegter Bytewert), dann das zu wiederholende Datenbyte, und schließlich die Anzahl der Wiederholungen. Da komme ich dann sogar auf minimal 7 Byte.
Wenn allerdings die Festlegung dieser speziellen RLE-Codierung "nur" 32bit für den Wiederholfaktor vorsieht (und selbst das ist schon untypisch), muss man sogar zwei Päckchen schnüren und kommt damit auf 12 Byte.
Schönen Tag noch,
Martin
Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
(wahsaga)