Bonjour,
je travaille sur un convertisseur décimal vers hexadécimal.
Je sais qu'il existe des fonctions toutes faites (toString(16)) mais ce n'est pas le but de cet exercice.
Mon code fonctionne et me retourne bien un résultat mais seulement en entier.
Par exemple pour 155 tapé, j'ai comme résultat 911 au lieux de 9B
Comment puis-je fais pour que cela fonctionne?
Si tous les entiers étaient convertis en char des conditions if == 10 suffiraient -elle?
Voici mon code :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script>
 
function Dectohex_onClick()
    {
    var valhex = document.getElementById( "valhex" ) ;
    var result = document.getElementById( "result" ) ;
    var dechex = valhex.value ;
    var valt ;
    var tab=[] ;
    var i = 0 ;
    var chiffres = new RegExp("[^0-9]");
    if (chiffres.test(dechex))
    {
    alert("Vous n'avez pas saisi un nombre décimale !");
    document.getElementById("valhex").style.backgroundColor='#F7230C'
    }
    else
    {
    document.getElementById("valhex").style.backgroundColor='#FFFFFF'
    while( dechex >= 1 )
        {
            valt=dechex%16 ;
            tab[i]=valt ;
            dechex=parseInt(dechex/16) ;
            i++ ;
        }  
    }  
    tab.reverse() ;
    result.value = tab.join("")
    }
 
 
</script>
 
<label>Valeur décimale</label>
<input id="valhex" />
<br>
<label>Convertis en hexa : </label>
<input id="result" />
<br>
<button onclick="Dectohex_onClick() ;">Convertir en hexa !</button>
J'ai déjà tenté de prendre une variable a laquelle je donne la valeur A et de faire un for ou un if le reste de la division == 10 de mettre la variable contenant A dans le tableau
Mais ce n'est pas une réussite car dans ce cas le tableau ne me retourne rien

Quelle direction dois-je prendre?
Faudrait-il convertir toute les reste de divisions en caractère pour que mon tableau accepte les caractères?