Convertisseur décimal-binaire

Principe

L'exercice consiste à écrire un convertisseur de nombre écrit base décimale vers la base binaire.

Ce micro projet permet de réviser la création de page Web de niveau basique, avec l'utilisation d'un mini formulaire pour interagir avec l'utilisateur. Un traitement en Javascript est nécessaire pour effectuer la conversion. Évidemment la page peut être agrémentée d'une feuille de style pour la déco de l'ensemble.

Beaucoup d'évolutions sont possibles sur cette base, notamment ajouter des convertisseurs dans d'autres bases?

Voir le projet

Démarrer le convertisseur pour une démo.

Le code

Fichier HTML


        <!DOCTYPE html>
        <html lang="fr">
        <head>
            <title>Convertisseur décimal - binaire</title>
            <meta charset="utf-8">
            <link rel="stylesheet" type="text/css" href="style.css">
        </head>
        <body>
            <h1>Convertisseur décimal - binaire</h1>
            <main>
                <h3>Entrer le nombre décimal à convertir :</h3>
                <form>
                    <input type="text" id="n" name="dec" value="0"><br />
                    <input type="button" value="Convertir" onclick="convertir()">
                </form>
                <p id="reponse">0</p>
            </main>
        
            <script src="script.js"></script>
        </body>
        </htmL>

Fichier Javascript


        "use strict";

        function convertir(){
            let n = document.getElementById("n").value;
            n = Number(n);
            let reste;
            let binaire = '';
            let signe = '';
            if (isNaN(n)){
                alert("Entre un nombre !");
            } else if (!(Number.isInteger(n)) || n < 0){
                alert("Entre un entier positif !");
            } else if (n === 0){
                document.getElementById("reponse").textContent = '0';
            } else{
                while (n !== 0){
                    reste = n % 2;
                    binaire = reste.toString() + binaire;
                    n = Math.trunc(n/2);
                    console.log(n, reste, binaire);
                }
                document.getElementById("reponse").textContent = signe + binaire;
            }
        }
        

Fichier CSS


        main{
            width: 600px;
            margin: auto;
            background-color: antiquewhite;
            text-align: center;
            border: solid 1px;
        }
        
        #reponse{
            background-color: cadetblue;
            font-size: 1.3em;
            margin: auto;
            width: 90%;
            margin-top: 20px;
            margin-bottom: 20px;
            padding: 10px;
        }