﻿#============================================================
# Conversion d'un entier en base 2 vers la base 8
#============================================================

def convb2b8():

    nb_8 = "("

    # Titre
    print("***************************************************")
    print("*                                                 *")
    print("* Conversion d'un entier en base 2 vers la base 8 *")
    print("*                                                 *")
    print("***************************************************")
    print()

#   Saisie de l'entier en base 2 à convertir
    nb_2 = str(input("Saisir l'entier en base 2  à convertir : "))
    print("Entier en base 2 à convertir : ",nb_2)

#   Détermination du nombre de chiffres du résultat
    n = len(nb_2)
    nb_triplets_complets = n//3
    nb_triplet_reste = n%3
    if nb_triplet_reste == 0 :
        nb_car = nb_triplets_complets
    else :
        nb_car = nb_triplets_complets + 1
#       Complétation par des zéros inutiles à gauche
        for i in range(3-nb_triplet_reste) :
            nb_2 = '0' + nb_2
            print("i =",i," nb_2 = ",nb_2)

#   Conversion par triplet
    for i in range(nb_car) :
        chiffre=str(nb_2[i*3:(i+1)*3])
        print("i =",i," chiffre = ",chiffre)
        if chiffre == "000" :
            nb_8 = nb_8 + " 0"
        elif chiffre == "001" :
            nb_8 = nb_8 + " 1"
        elif chiffre == "010" :
            nb_8 = nb_8 + " 2"
        elif chiffre == "011" :
            nb_8 = nb_8 + " 3"
        elif chiffre == "100" :
            nb_8 = nb_8 + " 4"
        elif chiffre == "101" :
            nb_8 = nb_8 + " 5"
        elif chiffre == "110" :
            nb_8 = nb_8 + " 6"
        elif chiffre == "111" :
            nb_8 = nb_8 + " 7"
    nb_8 = nb_8 + " )"

    print("Résultat en base 8 : ",nb_8)
    print()

    print("Fin programme")
    return 0