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.
- Conversione da Gigabyte a Byte in base decimale
- 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 pulsanteReset
. Associamo il pulsanteConvert
alla funzioneconvertToGB()
che converte il valore di byte dato in gigabyte. Il pulsanteReset
è associato alla funzionereset()
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 funzionewindow.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 funzioneconvertToGB()
. -
Nella funzione
convertToGB()
catturiamo il valore inserito dall’utente nel campo byte utilizzando la funzionedocument.getElementById("bytes_input").value
di javascript e lo catturiamo nel variabilebytesValue
. Nel passaggio successivo, convertiamo quel valore di byte in gigabyte dividendo ilbytesValue
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 ilgbValue
nella GUI impostando il valorelabel
usando ildocument.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 in10000000 Byte
. Ciò significa che utilizzando il codice sopra, nell’output verrà mostrato un byte con un valore maggiore di10000000 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.