Convertir base 2

Résolu/Fermé
asdxc - Modifié le 18 mai 2021 à 08:40
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 - 18 mai 2021 à 09:31
Bonjour,

C'est un exercice ou il faut que je trouve u moyen pour que intérieur du triangle soit aussi remplis de 1 et non seulement les cotes.

Je pense qu'il faut convertie en binaire signé ( que 0010 devient 1101) puis que l'on rajoute 1 en binaire mai je ne sais pas comment faire.

Voila le code :

def conversion(nb):
t = []
a = nb
i = 0
while (a > 0):
t.append(a%2)
a = a // 2
i = i + 1
while i < 8:
t.append(0)
i = i + 1
return t

def symetrique(nb):
t = conversion(nb)
l = len(t)
for i in range(l):
t.append(t[l - 1 - i])
return t

def affiche(nb):
t = symetrique(nb)
s = ""
for i in range(16):
s = "{}{}".format(s,str(t[15 - i]))
print("{}".format(s))


affiche(128)
affiche(128)
affiche(128)
affiche(64)
affiche(64)
affiche(32)
affiche(32)
affiche(16)
affiche(16)
affiche(8)
affiche(8)
affiche(4)
affiche(4)
affiche(2)
affiche(2)
affiche(255)


PS : désole si met explication ou demande sont mal faite
A voir également:

1 réponse

yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481
18 mai 2021 à 08:49
bonjour,
quel est l'énoncé de l'exercice?
tu nous montres un code qui ne te donne pas ce que tu attends, et tu ne montres pas le résultat que tu attends.
0
Le programme trace un triangle symétrique avec des 1 semblable à ce qui suit:
0000000110000000
0000000110000000
0000000110000000
0000001001000000
0000001001000000
0000010000100000
0000010000100000
0000100000010000
0000100000010000
0001000000001000
0001000000001000
0010000000000100
0010000000000100
0100000000000010
0100000000000010
1111111111111111
Le "tracé" se fait avec la fonction affiche(). Elle utilise les fonctions conversion() (faite en classe) et symetrique().
Le but est de modifier les valeurs dans la fonction affiche() afin d'obtenir un triangle plein en expliquant comment vous faites.
Ne regardez que la moitié droite du triangle, la partie gauche est donnée par la fonction symetrique()


Voila l'énoncer
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481 > asdxc
18 mai 2021 à 09:31
0