[BINAIRE] Code Complémenté & calcul binaire

Code Complémenté & calcul binaire [BINAIRE] - Divers - Programmation

Marsh Posté le 05-06-2003 à 15:58:49    

voila en révisant je suis tombe sur le code complémenté mais je comprend pas tres bien comment ca marche pour effectuer la soustraction :
 
exemple  
 

+63  => 0011 1111
-28  => 1110 0011
---    ----------
       10010 0010
                1
       ----------
        0010 0011


 

Citation :

en binaire naturel on a effetué l'operation suivante (traduite ici en base 10):  
 
63 + (255-28) = 318-28 = 290


 
je sais plus faire les operations en binaire :/


Message édité par pinguin007 le 05-06-2003 à 15:59:18

---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust
Reply

Marsh Posté le 05-06-2003 à 15:58:49   

Reply

Marsh Posté le 05-06-2003 à 19:58:05    

Ben ... C'est une addition ....
 
Tu prends les digits 1 à 1 :
 
a+b=c
 
c1 = a1 XOR b1
r1 = a1 AND b1
c2 = (a2 XOR b2) XOR r1
r2 = ((a2 OR b2) AND r1) OR (a2 AND b2)
c3 = (a3 XOR b3) XOR r2
r3 = ((a3 OR b3) AND r2) OR (a3 AND b3)
 
et ainsi de suite ...
 
Ca peut peut-être se simplifier, je viens de le refaire vite-fait ...
 
en considérant bien sur que b1 est le bit de poids le plus faible (le bit le plus à droite quoi)


---------------
last.fm
Reply

Marsh Posté le 05-06-2003 à 21:01:07    

hum... oki je vais voir ca :)


---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust
Reply

Marsh Posté le 05-06-2003 à 21:29:50    

Souvenirs de 1978 (à confirmer) : un nombre négatif voit son bit de gauche mis à un car c'est le bit de signe, la mantisse est alors le complément à "1".
28 : (0)0011100, -28 (1)1100011
 
Ensuite y une "astuce" normale qui m'échappe en ce moment pour le 1 ajouté (fatigué, au lit ds 5 minutes).

Reply

Marsh Posté le 05-06-2003 à 21:33:28    

Je suppose qu'il y a un rapport avec la manière dont sont représentés les nombres négatifs.
Sur nos PC, ils sont représentés en "complément à 2". C'est à dire que pour passer d'un nombre à son négatif, il suffit de l'inverser (NOT) et d'additionner 1 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed