IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Méthodes de conversion entre bases 2, 8, 10, 16 : somme pondérée ou divisions successives ?


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Méthodes de conversion entre bases 2, 8, 10, 16 : somme pondérée ou divisions successives ?
    Bonjour

    En cours, on a commencé à apprendre les différentes façons de changer d'une base à une autre base, grâce à des méthodes :

    - Somme pondéree
    - Divisions successives

    Le problème est que je comprends pas trop comment les utiliser, enfin dans quelles bases les utiliser genre :

    Base 10 à base 16, j'utilise quelle technique ? La somme ou la division ?
    Base 2 à base 16, pareil, je fais quoi ?

    ([U Bon après, il y a plusieurs façons, je sais, genre mettre base 10 en base 2 et faire des groupes de 4[/U]) mais c'est surtout pour les techniques que je me pose la question : Quand utilise-t-on la somme et quand utilise-t-on la division ?

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je suis pas sur que les conversion hexa/decimal/binaire soit un problème en rapport avec assembleur (certes en assembleur on l'utilise mais c'est comme si quelqu’un posait un probleme de math).

    Sinon je comprend pas ta question , je ne connais pas ton cours (donc je ne suis pas sur des nom utilisé pour les calcul) mais pour les conversion de Base 10 a Base 16 , je vois mal une telle conversion avec des additions (ou alors faites des + 16 jusqu’à tombé sur le chiffre le plus proche du nombre décimal mais ça reviendrai pareil a une division )
    Donc la question ne se pose pas , comme passer de Base 2 a base 10 , on fait des addition et pas division (je vois mal la aussi une division pour faire cette conversion qui marcherai).
    Pour Base 2 a base 16 , tu n'as nullement besoin de faire des calculs , il suffit juste de les mettre en quartet pour faire ta conversion en Hexa.

    C'est peut être un peu méchant mais si c'est réellement ta question , un peu de réflexion t'aurai donné ta réponse.

    Si c'est pour un code assembleur qu'il faudrait afficher sur l'écran, la méthode la plus rapide est conseillé tout simplement.

  3. #3
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Le problème ayant été mal formulé, il est normal qu'il n'ait pas été compris.

    Je le re-formule donc :
    étant donné un nombre N écrit dans une base b1, on demande de l'écrire dans une base b2.

    Le changement de base demandé est donc un problème d'écriture.
    Le nombre N existe, indépendamment de toute base.
    On demande juste, connaissant son écriture dans la base b1, de le re-écrire dans la base b2.

    La première étape consiste à calculer le nombre N à partir de son écriture dans la base b1.
    C'est une opération courante pour tout programmeur : l'utilisateur du programme saisit un nombre au clavier, et il faut stocker ce nombre en mémoire.
    Ici, la base b1 est 10 car nous utilisons couramment la base 10.
    Par exemple, l'utilisateur va entrer : 628397.
    Dans ce cas, le nombre N vaut 6x10^5 + 2x10^4 + 8x10^3 + 3x10^2 + 9x10^1 + 7.
    Pour calculer N, on utilise donc une somme pondérée.
    Si le nombre N est écrit dans la base b1, on remplace 10 par b1 dans la somme précédente ; mais le principe reste le même.

    Le nombre N étant connu, le deuxième étape consiste à l'écrire dans la base b2.
    C'est également une opération courante pour tout programmeur : il faut souvent communiquer à l'utilisateur d'un programme le résultat d'une opération.
    Cette fois, la méthode va consister à faire des divisions successives.
    Je vais illustrer cette méthode avec la base 10, mais le principe reste le même pour une base b2 quelconque.
    L'écriture du nombre N se fait de droite vers la gauche.
    Première division : on divise N par 10 et on écrit le reste.
    Deuxième division : on divise le quotient (de la première division) par 10 et on écrit le reste.
    Troisième division : on divise le quotient (de la deuxième division) par 10 et on écrit le reste.
    etc ...
    On s'arrête quand le quotient est nul.
    Avec le N de l'exemple précédent, on écrira successivement 7, 9, 3, 8, 2, 6 et on s'arrêtera car le dernier quotient est nul.

    En résumé :
    1) on utilise une somme pondérée pour calculer le nombre écrit dans la première base
    2) on utilise des divisions successives pour écrire le nombre dans la deuxième base

    Remarque : comme le dit Kannagi, ce qui précède relève des math et pas de l'Assembleur.

Discussions similaires

  1. [TPW] Conversion entre les bases
    Par Haroun01 dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 04/12/2015, 06h44
  2. [TPW] Conversion entre bases de 2 à 36
    Par forum dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 15/11/2011, 19h45
  3. [Turbo Pascal] Conversion entre les bases
    Par louai dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 14/04/2011, 17h10
  4. Réponses: 2
    Dernier message: 30/06/2010, 22h35
  5. Conversion de base entre Access 97 & 2003
    Par perraced dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2007, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo