Converti byte in gigabyte usando JavaScript

Nithin Krishnan 12 ottobre 2023
  1. Conversione in base decimale
  2. Conversione in base binaria
Converti byte in gigabyte usando JavaScript

Ti sei mai chiesto quanti byte ci sono in un Gigabyte? Gigabyte è un’unità di misura comunemente usata. Gigabyte è ampiamente utilizzato nel mondo di tutti i giorni, la dimensione del file di un film, la capacità di un disco rigido, persino la dimensione della memoria ad accesso casuale nei nostri laptop o telefoni cellulari, tutto ciò che rappresentiamo con gigabyte. Tutte le unità in questi casi utilizzate per indirizzarli sono in Gigabyte. C’è un po’ di matematica necessaria per la conversione di byte in gigabyte. È simile alla conversione di metri in chilometri. Vediamo come possiamo fare la conversione in JavaScript. Esistono un paio di approcci per la conversione di byte in gigabyte, che sono i seguenti.

  1. Conversione da Gigabyte a Byte in base decimale
  2. Conversione di gigabyte in byte in base binaria

Conversione in base decimale

Il dubbio più comune che sorge a tutti è se un valore in kilobyte è 1024 byte o 1000 byte. Durante la ricerca in Google, otteniamo risposte contrastanti. Ma il concetto di fondo è semplice. In un sistema di numeri decimali, un valore di Kilobyte è 1000 byte, mentre, in un sistema di numeri binari, il valore è 1024 byte. Quindi i parametri di conversione cambiano in base a questa ideologia.

Razionale per la conversione con base decimale

Prima di iniziare la spiegazione, esamineremo le unità di conversione chiave. Poiché abbiamo a che fare con una base di numeri decimali, utilizzeremo la seguente logica di conversione.

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

Quindi, 1 GigaByte = 1000 * 1000 * 1000 Byte. In altre parole, un GigaByte equivale a 10 alla potenza di 9 (10^9) byte. Quindi, la semplice ricerca di 1 GB in google ci dà una rappresentazione come 1e+9. 1e+9 è uguale a 1 con 9 zeri. Questo è il succo del calcolo della conversione.

Codice di conversione

Abbiamo ora compreso il calcolo dietro le conversioni e le varie unità di Byte. Passiamo velocemente attraverso il codice javascript per convertire un numero (numero di Byte) dato come input. Il codice restituirà il valore equivalente in Gigabyte per esso e lo visualizzerà sullo schermo.

<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;
}

I passi sono come segue.

  • Progettiamo una GUI HTML per catturare il numero di byte dell’utente. La GUI ha un pulsante Convert e un pulsante Reset. Associamo il pulsante Convert alla funzione convertToGB() che converte il valore di byte dato in gigabyte. Il pulsante Reset è associato alla funzione reset() per ripristinare i valori in modo che l’utente possa provare nuovi valori da convertire.
  • L’esecuzione del codice inizia con la funzione window.onload(). La funzione window.onload() è la prima ad essere eseguita quando la pagina viene caricata. In questa funzione, resettiamo i valori per l’ingresso e l’uscita Gigabyte a 0.
  • Una volta che l’utente immette un valore in byte e fa clic sul pulsante Convert, viene attivata la funzione convertToGB().
  • Nella funzione convertToGB() catturiamo il valore inserito dall’utente nel campo byte utilizzando la funzione document.getElementById("bytes_input").value di javascript e lo catturiamo nel variabile bytesValue. Nel passaggio successivo, convertiamo quel valore di byte in gigabyte dividendo il bytesValue per (1000 * 1000 * 1000). Ricorda, dividendo il valore del byte per 1000 ci dà il valore del kilobyte dividendolo ulteriormente per mille restituisce il valore del megabyte e dividendo il valore dei megabyte ci dà la rappresentazione dei gigabyte per i byte.
  • Eseguiamo questi calcoli e memorizziamo il risultato nella variabile gbValue. Nella riga successiva, visualizziamo il gbValue nella GUI impostando il valore label usando il document.getElementById("gbValue").innerHTML. E quindi il valore convertito viene visualizzato nell’HTML.

Osservazioni

  • In sostanza, richiederemo un byte con un valore con più di sette cifre per ottenere un equivalente Gigabyte tangibile. Il valore di uscita minimo è 0.01 GB, che converte in 10000000 Byte. Ciò significa che utilizzando il codice sopra, nell’output verrà mostrato un byte con un valore maggiore di 10000000 Bytes. L’output per valori inferiori sarà 0 GB.
  • C’è una limitazione del numero di cifre che una variabile può contenere in javascript. JavaScript ha una costante Number.MAX_SAFE_INTEGER che definisce il valore massimo che una variabile numerica può contenere in javascript che è 9007199254740991. Quindi, il codice non convertirà alcun numero di byte in più nella rappresentazione Gigabyte. Potremmo perdere precisione durante la conversione. Non lo consigliamo.
  • Secondo il codice che abbiamo visto sopra, il valore di output mostra valori arrotondati a due cifre decimali. Usiamo la funzione Number.toFixed() di JavaScript. Secondo la riga (bytesValue / (1000 * 1000 * 1000)).toFixed(2), l’output sarà di 2 cifre decimali. Se mostriamo il valore del gigabyte con una precisione migliore, possiamo modificare il codice con .toFixed(3) o .toFixed(4) secondo il requisito.

Conversione in base binaria

Il modo più comune per convertire un valore di byte in un Gigabyte è con quello a base binaria. La maggior parte di noi è a conoscenza del valore unitario 1024. A differenza del sistema decimale, dove la divisione è per 1000, per convertire in unità di byte più alte, nel sistema numerico binario, dividiamo per il fattore 1024.

Da base a conversione con base binaria

Prima di esaminare il codice per la conversione, esaminiamo il valore dell’unità di conversione nel sistema numerico binario. Qui la logica ruoterà intorno a 1024 (cioè 2 alla potenza 10 o 210).

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

Quindi, nel sistema binario di base, 1 GigaByte = 1024 * 1024 * 1024 Byte. Per convertire il valore di un numero di byte in Gigabyte sarà necessario dividerlo per 1024 * 1024 * 1024.

Codice di conversione

Il codice seguente converte il numero dei byte in una rappresentazione di gigabyte nel sistema binario.

<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;
}

Rispetto al codice con la conversione del sistema a base decimale, l’unica differenza qui è che usiamo il fattore 1024 invece di 1000 che è evidente dalla riga (bytesValue / (1024 * 1024 * 1024)).toFixed(2).

Osservazioni

  • La stessa limitazione si applica in questo metodo per l’intervallo di numeri massimo che può essere inserito. Un numero maggiore di 9007199254740991 non garantisce una conversione riuscita.
  • Possiamo regolare la precisione con cambiando il parametro della funzione toFixed() nella riga (bytesValue / (1024 * 1024 * 1024)).toFixed(2). Di solito, nella maggior parte dei casi, si preferiscono 2 o 3 cifre dopo la virgola.
  • I risultati possono differire in entrambe le conversioni, la conversione in base decimale e la conversione in base binaria. Il confronto tra i due metodi non è valido in quanto sarà come confrontare mele e arance. I risultati sono nei rispettivi sistemi di base numerica. Ciò significa che, nel sistema di base decimale di conversione dei byte in gigabyte, il risultante sarà una rappresentazione di gigabyte nel sistema di numeri decimali e viceversa per il sistema di base dei numeri binari.