Membre de ClickFR, Reseau francophone Paie-Par-Click
Accueil
Accueil
- [ CSS : ] [ DHTML : ] [ HTML : ] [ JavaScript : ] [ Refs : ]
Accueil

JavaScript 1.3

  Conversions décimal / hexadécimal

fonction de ce script  principe de ce script  le script lui-meme  demonstration du script  telechargement du script  Compatibilite du script... a partir de : 

  Fonction
Le but de ce script est de convertir à la volée des nombres décimaux en nombres hexadécimaux, et inversement.
  Principe
Même si JavaScript est assez bien pourvu en fonctions de calcul, il a une petite lacune : il sait très bien transformer un nombre hexadécimal en décimal, mais l'inverse n'existe pas, il faut donc construire une fonction.

Pour la conversion vers un nombre décimal, on utilise la fonction inclue dans JavaScript qui est : 'parseInt(nombre,16)' (on indique que le nombre est actuellement au format hexadécimal).

Pour la conversion vers un nombre hexadécimal, on créé tout d'abord un tableau des 'chiffres' hexadécimaux (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, et F).
Ensuite, on divise le nombre décimal par 16, on en retient la partie entière (si on part de 180, 180/16= 11,25, on retient 11).
On soustrait ensuite au nombre de départ (180) le nombre qu'on vient de retenir (11) multiplié par 16 (soit 176), ce qui nous laisse 4 (180-176).
Le premier chiffre retenu sert d'index dans le tableau des 'chiffres' hexadécimaux, on va donc prendre l'élément '11', c'est à dire 'B' comme étant la première partie de notre nombre hexadécimal, puis, de même avec le reste de notre opération '4' qui nous donne... '4' !
Pour l'exemple, 180 en hexadécimal donne donc 'B4'.

Attention, ce script ne fonctionne que pour des nombres décimaux inférieurs à 1 048 576 (FFFFF en hexadécimal) -rien ne vous empêche en obrservant bien le script d'élargir son champ d'action. Rassurez vous tout de même, il n'a pas de limite pour transformer des nombres hexadécimaux en nombres décimaux (fonction JavaScript intégrée oblige).
  Le script
dans la partie <head>
<script language="JavaScript">

// Conversion vers des nombres décimaux
function conv_dec() {

// Si le champ 'hexadécimal' n'est pas vide
if ( document.formulaire.hexa.value != "" ) {

// On utilise la fonction de conversion intégrée
hex = parseInt(document.formulaire.hexa.value,16);

// Et on affecte le résultat au champ 'décimal'
document.formulaire.decimal.value = hex;
}
}

// Tableau des 'chiffres' de l'hexadécimal
var H = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");

// Conversion vers des nombres hexadécimaux
function conv_hex() {

var un;
var deux;
var trois;
var quatre;

// Si le champ 'décimal' n'est pas vide
if ( document.formulaire.decimal.value != "" ) {
dec = document.formulaire.decimal.value;

// Division de la saisie par 16, et élimination des chiffres après la virgule
un = Math.floor(dec/16);

// Si le resultat est supérieur à 15, c'est qu'il y aura plus de 2 chiffres hexadécimaux, il faut donc afiner
if (un > 15) {

// On affecte déjà le dernier chiffre hexadécimal
var z = dec - un*16;

// On divise le résultat précédent par 16 pour avoir le deuxième chiffre hexa (en partant de la fin)
deux = Math.floor(un/16);

// Si le résultat est supérieur à 15, on aura au moins 4 chiffres dans notre nombre hexadécimal
if ( deux > 15 ) {

// On a ici l'avant dernier chiffre hexadécimal
var y = un - deux*16;

// On divise le résultat précédent par 16 pour avoir le troisième chiffre hexa (en partant de la fin)
trois = Math.floor(deux/16);

// Si le résultat est supérieur à 15, on aura 5 chiffres dans notre nombre hexadécimal
if ( trois > 15 ) {

// On a ici le troisième chiffre hexadécimal (toujours en partant de la fin)
var x = deux - trois*16;

// On a ici le premier chiffre hexa (en partant du début ;-)
quatre = Math.floor(trois/16);

// Et le deuxième (en partant du début)
var w = trois - (quatre*16);

// On compose le résultat dans le champ de formulaire
document.formulaire.hexa.value = H[quatre] + H[w] + H[x] + H[y] + H[z];
}

// Si on n'a que 4 chiffres hexadécimaux...
else {
var x = deux - (trois*16);
document.formulaire.hexa.value = H[trois] + H[x] + H[y] + [z];
}
}

// Si on n'a que 3 chiffres hexadécimaux
else {
var y = un - (deux*16);
document.formulaire.hexa.value = H[deux] + H[y] + [z];
}
}

// Si on n'a que deux chiffres
else {
var z = dec-(un*16);
document.formulaire.hexa.value = H[un] + H[z];
}
}
}
</script>
dans la partie <body>
<form name="formulaire">
Hexadécimal : <input type="text" name="hexa" size="5"><input type="button" value="==>" OnClick="conv_dec();">
<input type="button" value="<==" OnClick="conv_hex();"><input type="text" name="decimal" size="5"> : Décimal
</form>
  Démonstration
Hexadécimal : : Décimal

  Téléchargement
Ce script est disponible en deux versions :
  • le script est intégré à la page où il agit,
  • le script est dans un fichier séparé de la page où il agit (fichier.js et fichier.html).

    L'intérêt d'un script dans un fichier séparé est de pouvoir le partager entre plusieurs pages html.
    Cela permet aussi de le rendre inaccessible à toute personne qui souhaiterai l'enregistrer pour une autre utilisation.
  • Script intégré :
    calculs_dec_hex.zip
    1 Ko
    telechargez le script telechargez le script
    Script séparé :
    calculs_dec_hex2.zip
    1 Ko
    Recherche
    aide sur la recherche
    hit-parade
    Votez TOP Ouaibe !

    statistiques
    aide sur les contacts aide sur la mailing-list aide sur la newsletter