TP1

conversion binaire decimal

D'une base à l'autre


Principe général


De manière générale l'éciture d'un nombre en base b est :
x_nx_{n+1}.....x_1 = x_n \times b^n + x_{n+1} \times b^{n+1} + ... + x_n \times b^1 x_1 \times b^1 + x_0 \times b^0


Exemple en base 10


On considère le nombre 675 en base 10 (noté 675_{\overline{10}}), alors :
Si on veut le décomposer on écrira :
675 = 6 \times 10^2 + 7 \times 10^1 + 5 \times 10^0
675 = 6 \times 100 + 7 \times 10 + 5 \times 1


En base 2


On considère le nombre 1011 en base 2 (noté 1001_{\overline{2}}), alors :

1011_{\overline{2}} = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0
1011_{\overline{2}} = 1 \times 8 + 0 \times 4 + 1 \times 2 + 1 \times 1
1011_{\overline{2}} = 8 + 0 + 2 + 1
1011_{\overline{2}} = 11_{\overline{10}}




Comprendre en vidéo


https://www.youtube.com/svq_ZcVTs_g

Du binaire au décimal

Objectif



Écrire un programme qui prend en paramètre la représentation d'un nombre en binaire et qui renvoie la représentation décimale de ce nombre.

Éléments de programmation

  • str(nb) permet de tranformer un nombre nb en chaine de caractères
  • len("Bonjour") renvoie la longueur de la chaine de caractères
  • on peut iterer sur les chaine de caractère,
    ma_chaine = "Bonjour"
    ma_chaine[0] renvoie le premier caractère de ma_chaine, c'est à dire "B"
  • ma_chaine[::-1] premet de renverser la chaine "ruojnoB"
  • 2**3 effectue le calcul 2^3


Programme

         
def conversion_binaire_decimale(nb_b):
  """
  Conversion d'un nombre en base binaire vers un nombre en basedécimal
     @params :
      - nb_b (int): nombre dans son écriture binaire
     @returns : 
      - nb_d (int) : nombre dans son écriture décimale
  """

         
      

Tests

Verifier votre code, en exécutant la cellule ci-dessous.

         
import assets.test as test
test.test_conv_2_to_10(conversion_binaire_decimale)
         
      

Passer d'une base décimale à un nombre binaire


La méthode

Un peu plus complexe cette fois.
Pour passer d'un nombre en base 10 à un nombre binaire, on fait une succession de division euclidienne.


Écrire un programme qui prend en paramètre la représentation décimale d'un nombre et qui retourne sa représentation binaire.

Programme

  
def conversion_decimale_binaire(nb_d):
      """
      Conversion dun nombre en base binaire vers un nombre en base décimal
      @params :
      - nb_d (int): représentation décimale dun nombre
      @returns :
      - nb_b (int) : représentation binaire de ce nombre
      """
      pass
  

Tests

Verifier votre code, en exécutant la cellule ci-dessous
  
import assets.test as test
test.test_conv_10_to_2(conversion_decimale_binaire)

Titre du popup

Message du popup !