Konvertieren Sie Bytes in Gigabyte mit JavaScript

Nithin Krishnan 12 Oktober 2023
  1. Umwandeln in Dezimalbasis
  2. Konvertieren in Binärbasis
Konvertieren Sie Bytes in Gigabyte mit JavaScript

Haben Sie sich jemals gefragt, wie viele Bytes in einem Gigabyte stecken? Gigabyte ist eine häufig verwendete Maßeinheit. Gigabyte ist in unserer täglichen Welt weit verbreitet Dateigröße eines Films, die Kapazität einer Festplatte, sogar die Größe des Random Access Memory in unseren Laptops oder Mobiltelefonen alles, was wir mit Gigabyte darstellen. Alle Einheiten, die in diesen Fällen verwendet werden, um diese zu adressieren, sind in Gigabyte angegeben. Für die Umrechnung von Bytes in Gigabyte ist ein wenig Mathematik erforderlich. Es ist vergleichbar mit der Umrechnung von Metern in Kilometer. Lassen Sie uns sehen, wie wir die Konvertierung in JavaScript durchführen können. Es gibt einige Ansätze für die Konvertierung von Bytes in Gigabyte, die wie folgt sind.

  1. Konvertieren von Gigabyte in Byte in Dezimalbasis
  2. Konvertieren von Gigabyte in Byte in Binärbasis

Umwandeln in Dezimalbasis

Der häufigste Zweifel, der bei jedem auftritt, ist, ob ein Kilobyte-Wert 1024 Byte oder 1000 Byte beträgt. Bei der Suche in Google erhalten wir gemischte Antworten. Aber das zugrunde liegende Konzept ist einfach. In einem dezimalen Zahlensystem ist ein Kilobyte-Wert 1000 Bytes, während in einem binären Zahlensystem der Wert 1024 Bytes beträgt. Daher ändern sich die Konversionsparameter basierend auf dieser Ideologie.

Begründung für die Umrechnung mit Dezimalbasis

Bevor wir mit der Erklärung beginnen, schauen wir uns die wichtigsten Umrechnungseinheiten an. Da wir es mit einer dezimalen Zahlenbasis zu tun haben, verwenden wir das folgende Umrechnungsprinzip.

  • 1 KiloByte = 1000 Byte
  • 1 Megabyte = 1000 KiloByte
  • 1 GigaByte = 1000 MegaByte

Also 1 GigaByte = 1000 * 1000 * 1000 Byte. Mit anderen Worten, ein GigaByte entspricht 10 hoch 9 (10^9) Bytes. Eine einfache Suche nach 1 GB in Google liefert uns daher eine Darstellung wie 1e+9. 1e+9 ist gleich 1 mit 9 Nullen. Das ist der Kern der Umrechnungsrechnung.

Umwandlungscode

Wir haben nun die Berechnung hinter den Umrechnungen und die verschiedenen Einheiten von Bytes verstanden. Lassen Sie uns schnell den JavaScript-Code durchgehen, um eine als Eingabe angegebene Zahl (Anzahl von Bytes) zu konvertieren. Der Code gibt den entsprechenden Gigabyte-Wert zurück und zeigt ihn auf dem Bildschirm an.

<h3><center>Byte to GB</center></h3>
<div>
    <center>
        <input type="text" id="bytes_input"><label>Bytes</label>
    </center>
</div>
<div>
    <center>
        <button onclick="convertToGB()">Convert</button>
        <button onclick="reset()">Reset</button>
    </center>
</div>
<center>
    <div>
        <label>Result: </label> <label id="gbValue">0</label> GB
    </div>
</center>
window.onload =
    function() {
  reset();
  updateDisplay(0);
}

function convertToGB() {
  let bytesValue = document.getElementById('bytes_input').value;
  let gbValue = (bytesValue / (1000 * 1000 * 1000)).toFixed(2);
  updateDisplay(gbValue);
}

function reset() {
  document.getElementById('bytes_input').value = 0;
  updateDisplay(0);
}


function updateDisplay(val) {
  document.getElementById('gbValue').innerHTML = val;
}

Die Schritte sind wie folgt.

  • Wir entwerfen eine HTML-GUI, um die Anzahl der Bytes des Benutzers zu erfassen. Die GUI hat einen Convert- und einen Reset-Button. Wir binden die Schaltfläche Convert an die Funktion convertToGB(), die den angegebenen Byte-Wert in Gigabyte umwandelt. Die Schaltfläche Reset ist mit der Funktion reset() verbunden, um die Werte zurückzusetzen, damit der Benutzer versuchen kann, neuere Werte zu konvertieren.
  • Die Ausführung des Codes beginnt mit der Funktion window.onload(). Die Funktion window.onload() ist die erste, die beim Laden der Seite ausgeführt wird. In dieser Funktion setzen wir die Werte für das Input- und Output-Gigabyte auf 0 zurück.
  • Sobald der Benutzer einen Byte-Wert eingibt und auf die Schaltfläche Konvertieren klickt, wird die Funktion convertToGB() ausgelöst.
  • In der Funktion convertToGB() erfassen wir den vom Benutzer im Byte-Feld eingegebenen Wert mit der Funktion document.getElementById("bytes_input").value von JavaScript und erfassen ihn im bytesValue-Variable. Im nächsten Schritt wandeln wir diesen Byte-Wert in Gigabyte um, indem wir den bytesValue durch (1000 * 1000 * 1000) dividieren. Denken Sie daran, dass wir den Wert des Bytes durch 1000 teilen, um den Kilobyte-Wert zu erhalten.
  • Wir führen diese Berechnungen durch und speichern das Ergebnis in der Variable gbValue. In der nächsten Zeile zeigen wir den gbValue in der GUI an, indem wir den label-Wert mit document.getElementById("gbValue").innerHTML setzen. Daher wird der konvertierte Wert im HTML angezeigt.

Bemerkungen

  • Im Wesentlichen benötigen wir ein Byte mit einem Wert mit mehr als sieben Stellen, um ein greifbares Gigabyte-Äquivalent dafür zu erhalten. Der minimale Ausgabewert beträgt 0.01 GB, was in 10000000 Bytes umgerechnet wird. Das bedeutet, dass mit dem obigen Code ein Byte mit einem Wert größer als 10000000 Bytes in der Ausgabe angezeigt wird. Bei kleineren Werten wird 0 GB ausgegeben.
  • Die Anzahl der Ziffern, die eine Variable in JavaScript enthalten kann, ist begrenzt. JavaScript hat eine Konstante Number.MAX_SAFE_INTEGER, die den maximalen Wert definiert, den eine Zahlenvariable in JavaScript aufnehmen kann, nämlich 9007199254740991. Daher konvertiert der Code keine weitere Bytezahl in die Gigabyte-Darstellung. Wir können während der Konvertierung Genauigkeit verlieren. Wir empfehlen es nicht.
  • Gemäß dem oben gezeigten Code zeigt der Ausgabewert auf zwei Dezimalstellen gerundete Werte an. Wir verwenden die Funktion Number.toFixed() von JavaScript. Gemäß der Zeile (bytesValue / (1000 * 1000 * 1000)).toFixed(2) werden 2 Dezimalstellen ausgegeben. Wenn wir den Gigabyte-Wert mit besserer Genauigkeit anzeigen, können wir den Code je nach Anforderung mit .toFixed(3) oder .toFixed(4) optimieren.

Konvertieren in Binärbasis

Die am häufigsten verstandenen Möglichkeiten, einen Bytewert in ein Gigabyte umzuwandeln, sind die binären Basiswerte. Den meisten von uns ist der Stückwert 1024 bekannt. Anders als im Dezimalsystem, wo die Division durch 1000 erfolgt, um in höhere Byte-Einheiten umzurechnen, dividieren wir im binären Zahlensystem durch den Faktor 1024.

Basis zu Konvertierung mit binärer Basis

Bevor wir uns den Code für die Umrechnung ansehen, schauen wir uns den Wert der Umrechnungseinheit im binären Zahlensystem an. Hier dreht sich die Begründung um 1024 (also 2 hoch 10 oder 210).

  • 1 KiloByte = 1024 Byte
  • 1 Megabyte = 1024 Kilobyte
  • 1 GigaByte = 1024 MegaByte

Daher ist im binären Basissystem 1 GigaByte = 1024 * 1024 * 1024 Bytes. Um einen Byte-Zahlenwert in Gigabyte umzuwandeln, muss dieser durch 1024 * 1024 * 1024 geteilt werden.

Umwandlungscode

Der folgende Code konvertiert die Anzahl der Bytes in eine Gigabyte-Darstellung im Binärsystem.

<h3><center>Byte to GB</center></h3>
<div>
    <center>
        <input type="text" id="bytes_input"><label>Bytes</label>
    </center>
</div>
<div>
    <center>
        <button onclick="convertToGB()">Convert</button>
        <button onclick="reset()">Reset</button>
    </center>
</div>
<center>
    <div>
        <label>Result: </label> <label id="gbValue">0</label> GB
    </div>
</center>
window.onload =
    function() {
  reset();
  updateDisplay(0);
}

function convertToGB() {
  let bytesValue = document.getElementById('bytes_input').value;
  let gbValue = (bytesValue / (1024 * 1024 * 1024)).toFixed(2);
  updateDisplay(gbValue);
}

function reset() {
  document.getElementById('bytes_input').value = 0;
  updateDisplay(0);
}


function updateDisplay(val) {
  document.getElementById('gbValue').innerHTML = val;
}

Gegenüber dem Code mit Dezimalsystemumrechnung ist der einzige Unterschied, dass wir statt des Faktors 1000 den Faktor 1024 verwenden, der aus der Zeile (bytesValue / (1024 * 1024 * 1024)) ersichtlich ist.toFixed (2).

Bemerkungen

  • Die gleiche Einschränkung gilt bei dieser Methode für den maximal eingebbaren Nummernkreis. Eine Zahl größer als 9007199254740991 garantiert keine erfolgreiche Konvertierung.
  • Wir können die Genauigkeit mit anpassen, indem wir den Parameter der Funktion toFixed() in der Zeile (bytesValue / (1024 * 1024 * 1024)).toFixed(2) ändern. Normalerweise werden in den meisten Fällen 2 oder 3 Stellen nach dem Komma bevorzugt.
  • Die Ergebnisse können bei beiden Umrechnungen, der Dezimal-Basis-Umrechnung und der Binär-Basis-Umrechnung, abweichen. Der Vergleich zwischen den beiden Methoden ist ungültig, da er wie der Vergleich von Apfel und Orangen ist. Die Ergebnisse stehen in den jeweiligen Zahlenbasissystemen. Das bedeutet, dass im dezimalen Basissystem der Umwandlung von Bytes in Gigabyte das Ergebnis eine Gigabyte-Darstellung im dezimalen Zahlensystem ist und umgekehrt für das binäre Zahlenbasissystem.