L'algèbre de Boole
-
<p>Bonjour, voici une présentation des bases de l'électronique numérique : la logique Booléenne ( ou algèbre de Boole ) .</p>
<p>Sujet en général passionnant pour les fans d'informatique et d'électronique :lol: </p>
<p>Tout d'abord, qu'est-ce qui ce cache derrière ce nom étrange ? :</p>
<ul><li><span style="color:#000000;"><span style="font-family:sans-serif;">L'</span><b>algèbre de Boole</b><span style="font-family:sans-serif;">, ou calcul booléen, est la partie des </span></span><a href="http://fr.wikipedia.org/wiki/Mathématiques" rel="external nofollow" title="Mathématiques"><span style="color:#000000;">mathématiques</span></a><span style="color:#000000;"><span style="font-family:sans-serif;">, de la </span></span><a href="http://fr.wikipedia.org/wiki/Logique" rel="external nofollow" title="Logique"><span style="color:#000000;">logique</span></a><span style="color:#000000;"><span style="font-family:sans-serif;"> et de l'</span></span><a href="http://fr.wikipedia.org/wiki/Électronique" rel="external nofollow" title="Électronique"><span style="color:#000000;">électronique</span></a><span style="color:#000000;"><span style="font-family:sans-serif;"> qui s'intéresse aux opérations et aux fonctions sur les variables logiques.</span><span style="font-family:sans-serif;"> Plus spécifiquement, l'algèbre booléenne permet d'utiliser des techniques algébriques pour traiter les expressions à deux valeurs du </span></span><a href="http://fr.wikipedia.org/wiki/Calcul_des_propositions" rel="external nofollow" title="Calcul des propositions"><span style="color:#000000;">calcul des propositions</span></a><span style="color:#000000;"><span style="font-family:sans-serif;">. Elle fut initiée en 1854 par le mathématicien britannique </span></span><strong><a href="http://fr.wikipedia.org/wiki/George_Boole" rel="external nofollow" title="George Boole"><span style="color:#000000;">George Boole</span></a></strong><span style="color:#000000;"><span style="font-family:sans-serif;">.</span></span>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:#000000;">Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des </span><a href="http://fr.wikipedia.org/wiki/Circuits_électroniques" rel="external nofollow" title="Circuits électroniques"><span style="color:#000000;">circuits électroniques</span></a><span style="color:#000000;">. Elle fut utilisée la première fois pour les circuits de commutation téléphoniques par </span><a href="http://fr.wikipedia.org/wiki/Claude_Shannon" rel="external nofollow" title="Claude Shannon"><span style="color:#000000;">Claude Shannon</span></a><span style="color:#000000;">.</span></p>
</li></ul><p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:#000000;">Merci Wikipédia :rolleyes: </span><span style="color:rgb(0,0,0);font-family:'Helvetica Neue', Arial, Verdana, sans-serif;"> </span></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Avant de lire ce post, je vous conseille de savoir compter en binaire, si ce n'est pas votre cas, vous trouverez des explications claires ici : <iframe data-embed-src="<base_url>/topic/1009-les-bases-de-la-num%C3%A9ration/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Bien, vous savez compter en binaire mais vous ne savez toujours pas concrètement ce qu'est l'algèbre booléenne, on avance pas décidément.</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">L'algèbre de Boole consiste à traiter les informations avec la plus simple ( et pourtant tellemeeeeeeent complexe... ) des logique, ici l'information est soit vraie, soit fausse ( 1 ou 0 ) pas de doute possible. On va donc associer ces 0 et ces 1 grâce à ce que l'on appelle des <strong>fonctions logiques.</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Je vous propose donc d'étudier ces fonctions logiques de base puis de s'amuser avec pour voir leur potentiel !</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><strong>I / fonctions logiques ( ou opérateurs logiques )</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> A/ fonction ET (conjonction) <strong>AND</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">nous allons représenter cette fonction par un petit schéma...</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-06052800-1409087413.png"><img alt="post-256-0-06052800-1409087413_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-06052800-1409087413_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">a et b sont nos entrées et L est la sortie de al fonction logique.</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Voici l'équation : L = a . b ( à lire L = a ET b )</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">rappelons que nous travaillons en binaire, a et b valent donc soit 0 soit 1. l'équation nous dit que L ne vaut 1 si et seulement si a ET b valent tous deux 1... d'où le nom.</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Un autre outil sympathique pour se représenter une fonction logique est ce que l'on appelle une table de vérité :</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-27766200-1409087710.png"><img alt="post-256-0-27766200-1409087710_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-27766200-1409087710_thumb.png" width="96"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">les lignes sont à lire ainsi = "0 et 0 font 0", "0 et 1 font 0" ... et ainsi de suite.</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> B/ fonction OU (disjonction) <strong>OR</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">allon un peu plus vite :</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-71618500-1409087878.png"><img alt="post-256-0-71618500-1409087878_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-71618500-1409087878_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-31477600-1409087879.png"><img alt="post-256-0-31477600-1409087879_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-31477600-1409087879_thumb.png" width="95"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">avec l'équation : L = a+b ( à lire L = a OU b )</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">C / fonction NON (négation) <strong>NOT</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-46039100-1409088014.png"><img alt="post-256-0-46039100-1409088014_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-46039100-1409088014_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-06166600-1409088015.png"><img alt="post-256-0-06166600-1409088015_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-06166600-1409088015_thumb.png" width="91"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-53717900-1409088071.png"><img alt="post-256-0-53717900-1409088071.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-53717900-1409088071.png" width="49"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">D / fonction NON ET (conjonction négative) <strong>NAND</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:rgb(34,34,34);font-family:'Helvetica Neue', Arial, Verdana, sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-51180300-1409088495.png"><img alt="post-256-0-51180300-1409088495_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-51180300-1409088495_thumb.png" width="100"/></a></span></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:rgb(34,34,34);font-family:'Helvetica Neue', Arial, Verdana, sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-32752300-1409088496.png"><img alt="post-256-0-32752300-1409088496_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-32752300-1409088496_thumb.png" width="97"/></a></span></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:rgb(34,34,34);font-family:'Helvetica Neue', Arial, Verdana, sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-91038500-1409088495.png"><img alt="post-256-0-91038500-1409088495_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-91038500-1409088495_thumb.png" width="100"/></a></span></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><span style="color:rgb(34,34,34);font-family:'Helvetica Neue', Arial, Verdana, sans-serif;">Il s'agit en fait d'une fonction ET suivie d'une fonction NON</span></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">E / fonction NON OU (disjonction négative) <strong>NOR</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-26036000-1409088642.png"><img alt="post-256-0-26036000-1409088642_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-26036000-1409088642_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-84346600-1409088642.png"><img alt="post-256-0-84346600-1409088642_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-84346600-1409088642_thumb.png" width="97"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-45136500-1409088643.png"><img alt="post-256-0-45136500-1409088643_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-45136500-1409088643_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"> </p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">F / fonction OU EXCLUSIF ( disjonction exclusive ) <strong>XOR</strong></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">En général les débutants butent un peu sur celle-là... on peut la traduire ainsi :</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">a OU b MAIS pas les deux. Voici comme d'habitude schéma, table de vérité et équation :</p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-22393500-1409089019.png"><img alt="post-256-0-22393500-1409089019_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-22393500-1409089019_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-82124900-1409089018.png"><img alt="post-256-0-82124900-1409089018_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-82124900-1409089018_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;"><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-26364600-1409089020.png"><img alt="post-256-0-26364600-1409089020_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-26364600-1409089020_thumb.png" width="100"/></a></p>
<p style="color:rgb(37,37,37);font-family:sans-serif;">Fun fact : les développeurs Assembleur utilisent souvent cette fonction pour remettre à 0 une variable ( un registre ) :</p>
<pre class="ipsCode prettyprint">
xor ax,ax
</pre>
<p>en effet, si vous vous amusez à poser l'opération ( imaginons que ax vaut 42, soit 00101010 ) :</p>
<p> </p>
<p> 00101010</p>
<p>xor 00101010</p>
<p>= 00000000</p>
<p>et oui, 0 ou 0 mais pas les deux, ça fait 0 ; 1 ou 1 MAIS PAS LES DEUX, ça fait 0...</p>
<p> </p>
<p>cette méthode est plus courte (en nombre d'octet) que de mettre 0 dans la variable directement :</p>
<pre class="ipsCode prettyprint">
mov ax, 0
</pre>
<p>Mais on s'éloigne du sujet originel... il nous reste une dernière fonction logique !</p>
<p> </p>
<p>G / fonction NON OU EXCLUSIF (disjonction exclusive négative) <strong>XNOR</strong></p>
<p> </p>
<p>Il s'agit bêtement d'une xor avec une not derrière...</p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-62579900-1409089603.png"><img alt="post-256-0-62579900-1409089603_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-62579900-1409089603_thumb.png" width="100"/></a></p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-02067200-1409089604.png"><img alt="post-256-0-02067200-1409089604_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-02067200-1409089604_thumb.png" width="76"/></a></p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-32132700-1409089604.png"><img alt="post-256-0-32132700-1409089604.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-32132700-1409089604.png" width="55"/></a></p>
<p>Vous remarquez cette bulle derrière la fonction logique à la place d'un petit triangle ? c'est une autre représentation pour dire que l'on à inversé la sortie ( on y a mit une fonction NON ).</p>
<p></p><p>Pfiou c'est fini pour la présentation bête et méchante des fonction logiques ! :lol: à noter qu'il en exister deux trois autres telles que l'implication ou l'inhibition mais bon, moins utilisées.</p>
<p> </p>
<p>Petit bonus : le théorème de De Morgan :</p>
<p>première loi : <a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-69095700-1409089870.png"><img alt="post-256-0-69095700-1409089870.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-69095700-1409089870.png" width="93"/></a></p>
<p>deuxième loi : <a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-31130500-1409089870.png"><img alt="post-256-0-31130500-1409089870.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-31130500-1409089870.png" width="94"/></a></p>
<p> </p>
<p>Vous êtes normalement capables de comprendre ceci par vous-même et j'aurais bien du mal à vous l'expliquer mieux que l'équation !</p>
<p>Le meilleur moyen de le maitriser est de faire des exercices... mais je n'ai pas mon cours sous la main
</p>
<p>Si ça vous intéresse : <a href="http://fr.wikipedia.org/wiki/Lois_de_De_Morgan" rel="external nofollow">http://fr.wikipedia.org/wiki/Lois_de_De_Morgan</a></p>
<p> </p>
<p><strong>II / faire du calcul !</strong></p>
<p> </p>
<p>aaaaaaaaah ! enfin quelque chose d'intéressant
!</p>
<p> </p>
<p>A / les additionneurs ( adders )</p>
<p> </p>
<p>Voyons comment votre ordinateur fait des additions...</p>
<p>(à peu près, les ingénieurs de proco on depuis longtemps abandonné cette méthode pour se tourner vers des additionneurs plus performant, notamment le <a href="http://en.wikipedia.org/wiki/Kogge-Stone" rel="external nofollow">Kogge-stone adder</a>, qui est un carry-look-ahead adder (additionneur à calcul anticipé de retenue :huh: ) mais c'est pour une autre histoire ^_^ ! )</p>
<p> </p>
<p>commençons doucement avec le demi additionneur (half-adder) : nous allons additionner deux bits, le bit A et le bit B ( ça va pour le moment ? )</p>
<p>dans le cas où les deux valent 1, on aura 2 en sortie, n'est-ce pas ? il nous faudra donc prévoir deux bits de sortie pour écrire 2 en binaire : 10.</p>
<p> </p>
<p>Nous avons donc une sortie et une retenue, la sortie correspond à 2<sup>0 </sup>et la retenue à 2<sup>1 </sup>, respectivement nommées S et C (pour carry, retenue en anglais)</p>
<p>les équations : C = A.B</p>
<p> S = A⊕B </p>
<p>schéma et table de vérité :</p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-60114500-1409091231.png"><img alt="post-256-0-60114500-1409091231_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-60114500-1409091231_thumb.png" width="100"/></a></p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-26040900-1409091232.png"><img alt="post-256-0-26040900-1409091232_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-26040900-1409091232_thumb.png" width="100"/></a></p>
<p> </p>
<p>Vous remarquerez que le schéma utilise des fonctions logiques que vous n'avez jamais vues... en fait c'est la représentation américaine (Wikipédia m'a lâchement lâcher (ooh un pléonasme ! ) sur ce coup), croyez-moi la fonction du dessus est une XOR et celle du dessous est une AND. faites un tour ici pour avoir les versions françaises et américaine côte à côte : <a href="http://en.wikipedia.org/wiki/Logic_gate" rel="external nofollow">http://en.wikipedia.org/wiki/Logic_gate</a></p>
<p> </p>
<p>Bien, nous pouvons maintenant additionner deux bits... mais qu'en est-il si nos nombres font plus de 1 bit chacun ?</p>
<p>Il faudrait faire un half adder sur chaque couple de bits ( les 2<sup>0</sup> avec les 2<sup>0</sup>, les 2<sup>1</sup> avec les 2<sup>1</sup> etc...) puis faire un half-adder entre la retenue des 2<sup>0</sup> et la sortie des 2<sup>1 </sup>et puis....<sup>
</sup>et puis on s'écroule sur la table parce que dès qu'il y a plus de 4 bits sur chaque nombre, même le schéma sur une feuille de papier avec un crayon devient un vrai clavaire :wacko: (j'ai déjà essayer en 4<sup>e</sup>...).</p>
<p>C'est pourquoi on a inventé le full-adder !</p>
<p>Ce petit bijou fait la différence entre la retenue entrante et la retenue sortante, il additionne ainsi trois bits et possède deux bits en sortie.</p>
<p>en reliant la retenue sortante (carry out) à la retenue entrante (carry in) du full-adder suivant, on additionne nos nombre sans avoir à gérer un truc ultra-compliqué.</p>
<p>on a : A+B+Cin = S+Cout (ici le + est un "plus" et non pas un OU).</p>
<p> </p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-37045200-1409092139.png"><img alt="post-256-0-37045200-1409092139_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-37045200-1409092139_thumb.png" width="55"/></a></p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-07243700-1409092140.png"><img alt="post-256-0-07243700-1409092140_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-07243700-1409092140_thumb.png" width="100"/></a></p>
<p>Pour les équations : S = (A⊕ B )⊕Cin</p>
<p> Cout = (A. B ) + (Cin . (A⊕ B ) )</p>
<p>Donc oui la fonction logique tout 0 droite est bien une OU.</p>
<p> </p>
<p>Je vous avais parlé de relier le Cout d'un adder au Cin du suivant... cela s'appel chainer les additionneurs, mettons que nous voulons faire A+B (plus hein, pas OU) mais que A et B font tous deux 4 bits, ils seront composé comme ceci :</p>
<p>A<sub>3</sub>A<sub>2</sub>A<sub>1</sub>A<sub>0</sub> et B<sub>3</sub>B<sub>2</sub>B<sub>1</sub>B<sub>0</sub></p>
<p>et on chaine les adders comme suit :</p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-80392700-1409092138.png"><img alt="post-256-0-80392700-1409092138_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-80392700-1409092138_thumb.png" width="100"/></a></p>
<p> </p>
<p>Et bien ma foi, nous voici rendu avec les additions !
</p>
<p> </p>
<p>B / la soustraction</p>
<p> </p>
<p>Et là, c'est le drame, vous avez peur de devoir vous replonger dans des schéma compliqués et incompréhensibles et tout reprendre de 0... Mais non ! si nous rusons il y a moyen de reprendre le travail déjà fait jusque là :ph34r: .</p>
<p>Rappellez-vous ... A-B = A+(- B ). Cours de maths niveau 5<sup>e</sup>.</p>
<p>Et pour trouver l'opposé d'un nombre binaire, c'est très simple.</p>
<p> </p>
<p> Cherchons -12. prenons la valeur absolue : (0b00001100), inversez-le bit à bit => 0b11110011, puis ajouter 1 => 0b11110100.</p>
<p>Et voilà votre nombre en binaire signé ( complément à deux ) ! simple non ?</p>
<p>et avec des fonctions logiques ? il suffit d'appliquer la fonction NON sur notre chiffre... puis de le faire passer dans un adder avec un 1.</p>
<p>Mieux encore, regardez le schéma des full-adders chainés, n'y voyez-vous pas une première retenue entrante inutile ? le voilà notre 1 à ajouter ! pour faire une soustraction, il suffit de faire une addition, sauf que l'on met la première Cin à 1 et que l'on fait passer B par une fonction NON .</p>
<p> </p>
<p>Mais il y a encore mieux, on peut utiliser le même chainage d'adders pour faire des additions et des soustractions ! il suffit de faire passer B par des fonction XOR, la deuxième entrée de chaque XOR étant reliée... à Cin, ainsi si Cin est à 0, B reste inchangé, Cin est à 0 (sans blague
) et on fait une addition entre A et B. Si Cin est à 1, le XOR va inverser chaque bits de B et le chaînage d'adders va ajouter 1 en plus, on aura une soustraction entre A et B (A-B pour être précis) :huh: . en image :</p>
<p><a class="attach-link" href="/assets/uploads/ips/monthly_08_2014/post-256-0-54900000-1409094784.png"><img alt="post-256-0-54900000-1409094784_thumb.png" src="/assets/uploads/ips/monthly_08_2014/post-256-0-54900000-1409094784_thumb.png" width="100"/></a></p>
<p>photoshop pro here !
</p>
<p></p><p>Et bien voilà... vos neurones peuvent désormais reposer en paix. Si vous voulez plus de masturbation intellectuelle faites-le moi savoir et je m'attaquerai aux multiplicateurs... et si vous voulez du hardcore je vous proposerai des diviseurs... et pour l'orgasme intellectuel, il y a le sujet qui me tient le plus à coeur : les carry-look-ahead adders ( comme le kogge-stone adder dont j'avais mentionné l'existence
).</p> -
<p>Merci pour ce cours, qui est vital dans les métiers des semi-conducteurs (Intel, etc...) : c'est exactement sur cette base qu'on réalise des transistors en silicium dopé afin d'accélérer la vitesse de traitement des ordinateurs.
<br/>
Deuxième sujet que tu postes et qui est pertinent. Bon début.<br/><br/>
+1 réputation.</p>
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login