JavaScriptsMathematik

KB MB Umrechner

Rechnet Kilobyte in Megabyte um und umgekehrt — klassisch binär mit dem Faktor 1024.

Wie viele Megabyte sind 4.500 Kilobyte? Und wie viele Kilobyte stecken in 2,5 MB? Oft ist man in der Lage, genau das wissen zu wollen — dieses kleine Script, im Original von Gerald Schafer, verrät es euch in beide Richtungen.

Die Bedienung: Tragt euren Wert in eines der beiden Felder ein und klickt auf „Umrechnen" — das jeweils andere Feld wird automatisch ausgefüllt. Bitte beachtet, dass immer nur ein Feld ausgefüllt sein sollte; steht in beiden etwas, hat das Kilobyte-Feld Vorrang. Mit „Löschen" leert ihr beide Felder für die nächste Rechnung.

Das Script rechnet klassisch binär mit dem Faktor 1024, so wie es auch Windows bei Dateigrößen tut. Streng genommen heißen diese Binäreinheiten seit 1996 Kibibyte (KiB) und Mebibyte (MiB), während Kilo und Mega offiziell für den Faktor 1000 stehen. Festplattenhersteller rechnen dezimal — deshalb zeigt das Betriebssystem für eine „500-GB-Platte" nur rund 466 GB an.

Und wenn ihr wissen wollt, wie lange eine Datei dieser Größe zum Herunterladen braucht, werft einen Blick auf unseren Downloadzeit-Rechner.

Mathematik Baujahr 2007 läuft in deinem Browser

Bitte immer nur eines der beiden Felder ausfüllen — das andere wird berechnet.

Script von Gerald Schafer

So funktioniert das Script

Das Script ist angenehm überschaubar: Es merkt sich die beiden Eingabefelder, entscheidet beim Klick auf „Umrechnen", welches davon ausgefüllt ist, und rechnet in die passende Richtung. Dazu kommt eine kleine Löschfunktion. Alles steckt in einer sofort ausgeführten Funktion, damit die Variablennamen nicht mit anderen Scripts auf der Seite kollidieren.

const feldKB = document.getElementById("KB");
const feldMB = document.getElementById("MB");

Die beiden Felder werden einmal am Anfang herausgesucht und in Konstanten abgelegt — so muss document.getElementById nicht bei jedem Klick erneut suchen, und der restliche Code bleibt kurz und lesbar.

if (feldKB.value && !isNaN(kb)) {
  feldMB.value = kb / 1024;
  meldung.textContent = "";
} else if (feldMB.value && !isNaN(mb)) {
  feldKB.value = mb * 1024;
  meldung.textContent = "";
}

Hier fällt die Entscheidung: Ein leeres Feld liefert den leeren String "", und der gilt in JavaScript als „falsch" — die Bedingung feldKB.value ist also nur erfüllt, wenn im Kilobyte-Feld etwas steht. Zusätzlich prüft !isNaN(kb) („is Not a Number"), dass die Eingabe wirklich eine Zahl ergab. Dann wird geteilt bzw. multipliziert: 1 MB = 1024 KB. Sind beide Felder gefüllt, greift der erste Zweig — das Kilobyte-Feld hat Vorrang, genau wie im Original.

const kb = Number(feldKB.value.replace(",", "."));

Das Original nutzte an dieser Stelle eval() — eine Funktion, die beliebigen Text als Programmcode ausführt und heute als schlechter Stil gilt. Number() macht aus dem Feldinhalt sauber eine Zahl; das vorgeschaltete replace(",", ".") erlaubt euch dabei auch ein deutsches Dezimalkomma wie in "2,5".

function deleteFields() {
  feldKB.value = "";
  feldMB.value = "";
  meldung.textContent = "";
}

Die Löschfunktion setzt beide Felder (und eine eventuelle Fehlermeldung) auf leer zurück. Verbunden wird alles am Ende per addEventListener("click", …) mit den beiden Knöpfen — deshalb steht das Script auch unter dem Formular, denn nur dann existieren die Elemente bereits, wenn es läuft.

Zum Anpassen: Wer lieber dezimal rechnet (1 MB = 1000 KB), ersetzt einfach beide 1024 durch 1000. Und nach demselben Muster lässt sich leicht ein drittes Feld für Gigabyte ergänzen — ein weiterer Faktor 1024 zwischen MB und GB.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Mathematik