CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question dut info

NicoASM
NicoASM
Niveau 6
26 septembre 2005 à 22:28:15

Comment faire la soustraction en complémentation à 2 pour 2 nombres binaires?
Dans mon cours g A-B= A+ Bbarre (càd l´inverse)+1
seulement g ossi appris qu´il ne fallait pas retenir la dernière retenue (celle la + à gauche) et que le bit le plus à gauche correspondait au signe (+pour 0 et - pour 1). Mais lorsque je traduis en décimal j´obtiens des résultats farfelus en fait
Si vous savez comment sy prendre merci de me répondre.

dnob700
dnob700
Niveau 10
26 septembre 2005 à 23:08:36

La formule doit ressembler à :

A - B = A + (non B) + 1

Mais le problème vient du codage des nombres : tu ne doit faire l´opération que jusqu´au plus grand bit égale à 1 d´un des nombres je crois.

Pour tester fait le uniquement avec des A plus grand que B pour l´instant, car les nombres négatifs vont dépendre du format. S tu fait ton calcule avec 8 bits disont et que tu trouve 11101001 par exemple et que tu le tape dans la calculatrice windows, alors il te donera un résultat positif alors que tu atend un truc négaif, car il faut que tu rajoutte plein de 1 devant (jusqu´à un total de 32 bits je pense) pour que la calculatrice comprenne qu´il s´agit d´un nombre négatif.

NicoASM
NicoASM
Niveau 6
27 septembre 2005 à 18:25:01

Ok merci pour ton aide, sinon en fait j´ai réessayé en faisant A-B= A +nonB+1 et enlevant la dernière retenue. (pr le ccul à la main)

G pris pr exemple 11-3=8 en binaire ca fé 1011 pour 11 et 0011

1011
+1101
------
11000 en enlevant la dernière retenue cela donne 1000 qui fait 8 en décimal.

Mais il y a aussi le pblème d´overflow et du bit équivalent au signe (1 c négatif et 0 positif)

Et ds l´exemple je ne men suis pas servi ptêtre orais-je du car si je fé 1 autre soustraction en complémentation à 2 ptêtre que ca pe ne pas marcher?

(Et puis g appris ke pour n bits 2^(n-1)<nombre<2^(n-1)-1 du coup il pe y avoir par moment un pb doverflow mais là ce n´est pas le cas)

Merci de me corriger si j´ai tort car je ne ptêtre pas bien saisi toute la difficulté en ce qui concerne la complémentation à 2.
:merci:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment