Convertir des octets en gigaoctets à l'aide de JavaScript

Nithin Krishnan 12 octobre 2023
  1. Conversion en base décimale
  2. Conversion en base binaire
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.

  1. Conversion de gigaoctets en octets en base décimale
  2. 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 bouton Reset. Nous lions le bouton Convert à la fonction convertToGB() qui convertit la valeur d’octet donnée en gigaoctets. Le bouton Reset est lié à la fonction reset() 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 fonction window.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 fonction convertToGB() est déclenchée.
  • Dans la fonction convertToGB(), nous capturons la valeur saisie par l’utilisateur dans le champ byte en utilisant la fonction document.getElementById("bytes_input").value de javascript et la capturons dans le Variable bytesValue. Dans l’étape suivante, nous convertissons cette valeur d’octet en gigaoctets en divisant le bytesValue 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 la gbValue dans l’interface graphique en définissant la valeur label à l’aide de document.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 en 10000000 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 sera 0 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 est 9007199254740991. 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.