Convertir des octets en gigaoctets à l'aide de JavaScript
Vous êtes-vous déjà demandé combien d’octets y a-t-il dans un gigaoctet ? Le gigaoctet est une unité de mesure couramment utilisée. Le gigaoctet est largement utilisé dans notre monde de tous les jours. Toutes les unités utilisées dans ces cas pour les traiter sont en gigaoctets. Il y a un peu de mathématiques nécessaires pour la conversion d’octets en gigaoctets. Cela revient à convertir des mètres en kilomètres. Voyons comment nous pouvons faire la conversion en JavaScript. Il existe plusieurs approches pour la conversion d’octets en gigaoctets, qui sont les suivantes.
- Conversion de gigaoctets en octets en base décimale
- Conversion de gigaoctets en octets en base binaire
Conversion en base décimale
Le doute le plus courant qui se pose à tout le monde est de savoir si une valeur en kilo-octets est de 1024 octets ou de 1000 octets. En cherchant dans Google, nous obtenons des réponses mitigées. Mais le concept sous-jacent est simple. Dans un système de nombres décimaux, la valeur d’un kilo-octet correspond à 1000
octets, alors que, dans un système de nombres binaires, la valeur est 1024
octets. Par conséquent, les paramètres de conversion changent en fonction de cette idéologie.
Justification de la conversion avec base décimale
Avant de commencer l’explication, nous allons examiner les unités de conversion de clé. Comme nous avons affaire à une base de nombres décimaux, nous utiliserons la logique de conversion suivante.
- 1 kilooctet = 1000 octets
- 1 mégaoctet = 1000 kilooctets
- 1 gigaoctet = 1000 mégaoctets
Par conséquent, 1 gigaoctet = 1000 * 1000 * 1000 octets. En d’autres termes, un gigaoctet équivaut à 10 à la puissance de 9 (10^9) octets. Par conséquent, la simple recherche de 1 GB
dans google nous donne une représentation comme 1e+9
. 1e+9
est égal à 1
avec 9
zéros. C’est l’essentiel du calcul de conversion.
Code de conversion
Nous avons maintenant compris le calcul derrière les conversions et les différentes unités d’octets. Parcourons rapidement le code javascript pour convertir un nombre (nombre d’octets) donné en entrée. Le code renverra la valeur équivalente en gigaoctets et l’affichera à l’écran.
<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;
}
Les étapes sont les suivantes.
-
Nous concevons une interface graphique HTML pour capturer le nombre d’octets de l’utilisateur. L’interface graphique dispose d’un bouton
Conver
et d’un boutonReset
. Nous lions le boutonConvert
à la fonctionconvertToGB()
qui convertit la valeur d’octet donnée en gigaoctets. Le boutonReset
est lié à la fonctionreset()
pour réinitialiser les valeurs afin que l’utilisateur puisse essayer de nouvelles valeurs à convertir. -
L’exécution du code commence par la fonction
window.onload()
. La fonctionwindow.onload()
est la première à être exécutée lors du chargement de la page. Dans cette fonction, nous remettons à 0 les valeurs de l’entrée et de la sortie Gigabyte. -
Une fois que l’utilisateur a saisi une valeur d’octet et cliqué sur le bouton
Convert
, la fonctionconvertToGB()
est déclenchée. -
Dans la fonction
convertToGB()
, nous capturons la valeur saisie par l’utilisateur dans le champ byte en utilisant la fonctiondocument.getElementById("bytes_input").value
de javascript et la capturons dans le VariablebytesValue
. Dans l’étape suivante, nous convertissons cette valeur d’octet en gigaoctets en divisant lebytesValue
par(1000 * 1000 * 1000)
. N’oubliez pas que diviser la valeur de l’octet par 1000 nous donne la valeur en kilo-octets, le diviser par mille renvoie la valeur en mégaoctets et diviser la valeur en mégaoctets nous donne la représentation en gigaoctets des octets. -
Nous effectuons ces calculs et stockons le résultat dans la variable
gbValue
. Dans la ligne suivante, nous affichons lagbValue
dans l’interface graphique en définissant la valeurlabel
à l’aide dedocument.getElementById("gbValue").innerHTML
. Et donc la valeur convertie est affichée dans le HTML.
Remarques
- Essentiellement, nous aurons besoin d’un octet ayant une valeur de plus de sept chiffres pour obtenir un équivalent tangible en gigaoctets. La valeur de sortie minimale est
0.01 GB
, qui se convertit en10000000 Bytes
. Cela signifie qu’en utilisant le code ci-dessus, un octet avec une valeur supérieure à10000000 Bytes
sera affiché dans la sortie. La sortie pour les valeurs inférieures à cela sera0 GB
. - Il y a une limitation du nombre de chiffres qu’une variable peut contenir en javascript. JavaScript a une constante
Number.MAX_SAFE_INTEGER
qui définit la valeur maximale qu’une variable numérique peut contenir en javascript qui est9007199254740991
. Par conséquent, le code ne convertira aucun nombre d’octets plus que lui en la représentation Gigabytes. Nous pouvons perdre en précision lors de la conversion. Nous ne le recommandons pas. - Selon le code que nous avons vu ci-dessus, la valeur de sortie affiche des valeurs arrondies à deux décimales. Nous utilisons la fonction
Number.toFixed()
de JavaScript. Selon la ligne(bytesValue / (1000 * 1000 * 1000)).toFixed(2)
, la sortie sera à 2 décimales. Si nous affichons une valeur en gigaoctets avec une meilleure précision, nous pouvons modifier le code avec.toFixed(3)
ou.toFixed(4)
selon les besoins.
Conversion en base binaire
Les manières les plus communément comprises de convertir une valeur d’octet en gigaoctet sont celles de base binaire. La plupart d’entre nous connaissent la valeur unitaire 1024
. Contrairement au système décimal, où la division est par 1000, pour convertir en unités d’octets plus élevées, dans le système binaire, nous divisons par le facteur 1024
.
Base à la conversion avec base binaire
Avant de regarder le code pour la conversion, regardons la valeur de l’unité de conversion dans le système de nombres binaires. Ici, le raisonnement tournera autour de 1024
(c’est-à-dire 2 à la puissance 10
ou 210).
- 1 kilooctet = 1024 octets
- 1 mégaoctet = 1024 kilooctets
- 1 gigaoctet = 1024 mégaoctets
Par conséquent, dans le système de base binaire, 1 GigaByte = 1024 * 1024 * 1024 Bytes. La conversion d’une valeur de nombre d’octets en gigaoctet nécessitera de la diviser par 1024 * 1024 * 1024
.
Code de conversion
Le code suivant convertit le nombre d’octets en une représentation en gigaoctets dans le système binaire.
<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;
}
Par rapport au code avec la conversion du système de base décimale, la seule différence ici est que nous utilisons le facteur 1024
au lieu de 1000
qui ressort de la ligne (bytesValue / (1024 * 1024 * 1024)).toFixed(2)
.
Remarques
- La même limitation s’applique dans cette méthode pour la plage de nombres maximale pouvant être saisie. Un nombre supérieur à
9007199254740991
ne garantira pas une conversion réussie. - On peut ajuster la précision avec en changeant le paramètre de la fonction
toFixed()
dans la ligne(bytesValue / (1024 * 1024 * 1024)).toFixed(2)
. Habituellement, dans la plupart des cas, 2 ou 3 chiffres sont préférés après la virgule. - Les résultats peuvent différer dans les deux conversions, la conversion en base décimale et la conversion en base binaire. La comparaison entre les deux méthodes est invalide car ce sera comme comparer des pommes et des oranges. Les résultats sont dans les systèmes de base de nombre respectifs. Cela signifie que, dans le système de base décimal de conversion d’octets en gigaoctets, le résultat sera une représentation en gigaoctets dans le système de nombre décimal et vice-versa pour le système de base de nombre binaire.