Soustraction de 4 nombre binaire et conversion bases 10 à 2

Fermé
Débutant - 26 oct. 2012 à 00:20
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 26 oct. 2012 à 02:12
Bonjour,

j'ai débuté un formation en programmation et je bloque sur des bases de débutant bête dans mes cours d'architecture de l'ordi.

Un soustraction binaire à 2 chiffre c'est simple, mais une soustraction à 3 chiffre binaire ou 4 chiffre binaire.

Exemple :


1111 1111
1111 1111
-1111 1111
=?

1111 1111
1111 1111
1111 1111
- 1111 1111
= ?

C'est possible ? ou je fais des complications ou il y en à pas.

Pour convertir de la base 2 à la base 10 le calcul est rapide et simple comme par exemple (101)2=1x2^2+0x2^1+1x2^0=(5)10

Mais pour la base 10 à 2 tous ce que j'ai trouvé comme explication c'est qui faut diviser a chaque fois le résultat par deux avec une division euclidienne.
Il doit avoir une formule avec une division comme dans mon exemple mais pas moyen de la trouver sur le net.

Sincère remercient de votre aide, j'ai vraiment envie que tous le calcul font une boucle dans mon esprit et de réussir mon premier examen.
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 oct. 2012 à 00:44
"C'est possible ? ou je fais des complications ou il y en à pas."
Les deux. Soustraire trois nombres se fait simplement par soustraction successives.
A-B-C-D = (((A-B)-C)-D)

"(101)2=1x2^2+0x2^1+1x2^0=(5)10"
D'habitude c'est plutôt la base que l'on marque entre parenthèses (ou crochets), mais pas la valeur... Il faut voir que l'égalité peut également s'écrire comme ceci :
101[2] = (((1)×2+0)×2+1) = 5[10]

Cette écriture permet de comprendre comment passer de la base 10 à la base 2, puisqu'il s'agit simplement de faire des divisions par 2, en séparant à chaque fois quotient et reste.

5/2 = 2 il reste 1
2/2 = 1 il reste 0
1/2 = 0 il reste 1
0
Bonsoir,

"C'est possible ? ou je fais des complications ou il y en à pas."
Les deux. Soustraire trois nombres se fait simplement par soustraction successives.

A-B-C-D = (((A-B)-C)-D)
Merci de cette réponde aussi rapide.

101[2] = (((1)×2+0)×2+1) = 5[10]
Merci de me reprendre, dans mon pdf de cour c'est écrit comme ceci. Pourquoi ?

Exemple :
Octal en Décimal
(745)8 = 7 x 82 + 4 x 81 + 5 x 80

Cette écriture permet de comprendre comment passer de la base 10 à la base 2, puisqu'il s'agit simplement de faire des divisions par 2, en séparant à chaque fois quotient et reste.

5/2 = 2 il reste 1
2/2 = 1 il reste 0
1/2 = 0 il reste 1

Si on me pose la question dans l'examen je dois l'écrire comme vous et il à pas de formule contracter comme de base 2 à 10

Merci de toute vos lumière et une bonne fin de journée ou nuit.
-2
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 oct. 2012 à 02:12
"dans mon pdf de cour c'est écrit comme ceci. Pourquoi ?"
Ce ne sont que des conventions d'écriture, qui n'ont rien d'obligatoire, c'est pour ça que j'écrivais "D'habitude c'est plutôt", je ne dis pas que c'est toujours comme ça, mais mettre la valeur entre parenthèse et pas la base comme dans ton pdf c'est la première fois que je vois ça !
En général on utilise plutôt des indices pour la base, soit avec des chiffres (2, 10, 16...), soit avec des lettres (d pour décimal, b pour binaire, h pour hexadécimal). Mais quand on écrit sur un ordinateur (comme sur ce forum) les indices ne sont pas forcément simples à éditer, donc on les symbolise comme on peut, avec des parenthèses ou des crochets par exemple.
Mais ce ne sont que des notations, donc peut importe laquelle on choisit, l'important c'est que celui qui te lise comprenne la même chose que ce que tu as écris !

"il à pas de formule contracter comme de base 2 à 10"
La décomposition que j'ai faite est universelle. Il ne s'agit pas vraiment d'une "formule" mais de la manière de décomposer n'importe quelle valeur en une succession de chiffres quelque soit la base de départ ou d'arrivée (sous réserve de savoir compter dans ces bases).

Je note la base avec les lettres (c'est plus facile sur le forum)

De base 10 à base 10 (programme d'école primaire ^^ )

1762d/10d = 176d il reste 2d
 176d/10d =  17d il reste 6d
  17d/10d =   1d il reste 7d
   1d/10d =   0d il reste 1d

1762d = 1d.10d^3 + 7d.10d^2 + 6d.10d^1 + 2d.10d^0 = 1762d

Remarque : je ne l'avait pas indiqué tout à l'heure car ça ne changait rien pour 101, mais le résultat se lit de bas en haut puisque l'on obtient la valeur des unités en premier, avant de s'intéresser aux dizaines.

De base 10 à base 2 :

5d/2d = 2d il reste 1b
2d/2d = 1d il reste 0b
1d/2d = 0d il reste 1b

5d = 1b.10b^2 + 0b.10b^1 + 1b.10b^0 = 101b

De base 2 à base 10 (la décomposition est encore valide, même si en pratique on ne fait pas comme ça, vu que la division par 1010b n'est pas très facile à faire)

1101101b/1010b = 1010b il reste 9d
   1010b/1010b =    1b il reste 0d
      1b/1010b =    0b il reste 1d

1101101b = 1d.10d^2 + 0d.10d^1+9d.10d^0 = 109d


Et ça n'a aucun intérêt mais pour le fun, de base 2 à base 2 :
101b/10b = 10b il reste 1b
 10b/10b = 1b il reste 0b
  1b/10b = 0b il reste 1b

101b = 1b.10b^2 + 0b.10b^1 + 1b.10b^0 = 101b
0