org/wiki/Alg%C3%A8bre_de_Boole_(logique)
L'algèbre de Boole des fonctions logiques permet de modéliser des raisonnements logiques,
en exprimant un « état » en fonction de conditions. Par exemple :
L'algèbre de Boole étant un domaine commun à trois disciplines, on rencontre des notations
différentes pour désigner un même objet. Dans le reste de l'article, on indiquera les diverses
notations, mais on en privilégiera une pour conserver une certaine homogénéité.
Sommaire
[masquer]
• 5 Lien externe
• B = {1, 0}
• B= .
Sur cet ensemble on peut définir deux lois (ou opérations ou foncteurs), les lois ET et OU et
une transformation appelée le complémentaire, l'inversion ou le contraire.
Elle est définie de la manière suivante : a ET b est VRAI si et seulement si a est VRAI et b est
VRAI. Cette loi est aussi notée
•
•
• « & » ou « && » dans quelques langages de programmation (Perl, C, PHP...)
• « AND » dans certains langages de programmation (Ada, Pascal, Python, PHP ...)
• « ∧ » dans quelques notations algébriques, ou en APL
On privilégiera dans la suite la notation
On peut construire la table de cette loi (comme une table d'addition ou de multiplication de
notre enfance) mais on ne la confondra pas avec une table de vérité.
Table de la loi ET
b\a 0 1
0 0 0
1 0 1
Elle est définie de la manière suivante : a OU b est VRAI si et seulement si a est VRAI ou b
est VRAI. (si a est vrai et que b est vrai aussi, alors a OU b est vrai.) Cette loi est aussi notée
•
•
• « | » ou « || » dans quelques langages de programmation
• « OR » dans certains langages de programmation
• « ∨ » dans quelques notations algébriques ou en APL.
• « < » très rarement.
On privilégiera dans la suite la notation mais on prendra garde que cette loi n'a pas de
rapport avec l'addition que l'on connaît.
Table de la loi OU
b\a 0 1
0 0 1
1 1 1
Le contraire de "a" est VRAI si et seulement si a est FAUX. Le contraire de a est noté
• non-a
•
•
• « ! » dans quelques langages de programmation (C, C++,...)
• « NOT » dans certains langages de programmation (ASM,...)
• « <> » dans certains langages de programmation (Basic,...)
• « ~ » dans quelques notations algébriques ou en APL.
On obtient alors et
Propriétés [modifier]
Associativité [modifier]
a + a + a + [...] + a = a
a.a.a.[...].a = a
Élément Neutre [modifier]
a+0=a
a.1 = a
Absorption [modifier]
a + a.b = a
a.(a + b) = a
Simplification [modifier]
Redondance [modifier]
Complémentarité [modifier]
(« La lumière est allumée » = « la lumière n'est pas non allumée »)
Structure [modifier]
On retrouve alors toutes les propriétés qui confèrent à B une structure d'algèbre de Boole
Priorité [modifier]
Pour faciliter leur compréhension, il a été décidé que ces opérations seraient soumises aux
mêmes règles que les opérations « de tous les jours », la fonction ET (multiplication logique)
est ainsi prioritaire par rapport à la fonction OU (somme logique) ; on peut, pour s'aider,
placer des parenthèses dans les opérations.
Exemple :
a = 0;b = 1;c = 1
On cherche a.b + c = ???
D'abord on calcule a.b :
a.b = 0.1
0.1 = 0
Puis, on calcule 0 + c :
0+c=c
c=1
Le résultat final est donc:
a.b + c = 1
Théorème de De Morgan [modifier]
a b a+b
0 0 0 1 1 1 1
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 0
Dans les deux cas, l'expression ne sera VRAIE que si a et b sont fausses.
a b a.b
0 0 0 1 1 1 1
0 1 0 1 1 0 1
1 0 0 1 0 1 1
1 1 1 0 0 0 0
Dans les deux cas, l'expression ne sera FAUSSE que si a et b sont vraies.
En électronique, une fonction logique est une boîte noire qui reçoit en entrée un certain
nombre de variables logiques et qui rend en sortie une variable logique dépendant des
variables d'entrée. L'article fonction logique précise comment construire les boîtes noires de
quelques fonctions fondamentales.
Une table de vérité permet de préciser l'état de la sortie en fonction des états des entrées.
On démontre que toute fonction logique peut se décrire à l'aide des trois opérations de base.
•
•
•
Table de vérité
de l'inverse
a
0 1
1 0
Table de vérité de la
somme
a b a b
0 0 0
0 1 1
1 0 1
1 1 1
Table de vérité du
produit
a b a b
0 0 0
0 1 0
1 0 0
1 1 1
Ce sont les fonctions logiques à deux variables. Parmi celles-ci, on en dénombre certaines
suffisamment intéressantes pour qu'on leur donne un nom.
Table de vérité de
XOR
a b a b
0 0 0
0 1 1
1 0 1
1 1 0
Le « ou exclusif » est parfois noté par le signe arithmétique (différent de), auquel il est
équivalent. Fonctionnellement, on utilise aussi un + entouré: .
Équivalence [modifier]
L'équivalence (notée EQV) est vraie si les deux entrées ont la même valeur et fausse sinon.
Elle est appelée aussi «non-ou exclusif » Elle se compose comme suit :
On peut aussi dire que :
Table de vérité de
EQV
a b a b
0 0 1
0 1 0
1 0 0
1 1 1
Il arrive que l'équivalence soit notée par le signe , bien que ce choix ne soit pas
recommandé compte-tenu des autres sens possibles attachés à ce signe.
Implication [modifier]
Cette opération n'est pas commutative. a est une condition suffisante pour b, qui, elle, est une
condition nécessaire pour a.
Mais
Illustration : de l'affirmation
on peut conclure
la variable d = "on décroche" est fonction logique des 3 précédentes. On écrira que
d = a.b + c
car on décroche quand ça sonne et qu'on a envie de répondre ou quand on a envie d'appeler
quelqu'un.
L'observation de la table montre que notre analyse première comportait une situation absurde:
le téléphone sonne, on a envie d'appeler quelqu'un, mais on n'a pas envie de répondre et on
décroche quand même. Cela n'est certainement pas le comportement souhaité, il est donc
préférable de modifier la fonction décrocher de façon à ce qu'on obtienne le tableau suivant:
Un bon élève s'interroge s'il est sage de sortir un soir. Il doit décider en fonction de quatre
propositions :
• a = il a assez d'argent
• b = il a fini ses devoirs
• c = le transport en commun est en grève
• d = l'auto de son père est disponible
Donc l'expression logique de sortir en fonction de l'état des variables a, b, c et d ; et elle peut
s'écrire ainsi :
Sortir =
Il est alors intéressant de trouver une expression minimisant le nombre de termes et le nombre
de lettres dans chaque terme. C'est l'objectif de certaines techniques comme la méthode de
Quine-Mc Cluskey, les diagrammes de Karnaugh…
par factorisation des deux premiers termes par et factorisation des deux derniers termes
par
• Fonction logique
• Calcul des propositions
• Système de numération
• Électronique numérique
• Neurone
• George Boole
• Opérations sur les bits
• Le wikilivre architecture des ordinateurs : comment synthétiser des portes logiques par
assemblage de transistors CMOS ?
Opération binaire
en ensemble
numérique fonctionnelle structurelle
ordonné
élémentaire ∘ composition ensemble de parties ensembles arbres
∗ convolution
+ addition vectorielle ∪ réunion × produit cartésien ∨ enracinement
– soustraction \ complémentation ⊔ union disjointe
(.) produit scalaire
× multiplication ∩ intersection ^ puissance variétés connexes
∧ produit
÷ division Δ différence ensembliste
vectoriel
^ puissance symétrique # somme connexe
algébrique groupes
arithmétique [,] crochet de Lie ordre total espaces pointés
{,} crochet de ⊕ somme directe
div quotient Poisson min minimum ∗ produit libre ∨ bouquet
euclidien ∧ produit max maximum ≀ produit en couronne ∧ smash produit
mod reste extérieur ∗ joint
euclidien homologique treillis modules
∧ PGCD
∨ PPCM ∧ borne inférieure ⊗ produit tensoriel
∨ borne supérieure Hom
combinatoire ∪ cup-produit séquentielle homomorphismes
• produit Tor torsion
( ) coefficient d'intersection Ext extensions
binomial + concaténation
A arrangement
logique booléenne
∧ ET ∨ OU ⇔ EQV
⊕ OU exclusif ⇒ IMP (implication)
(conjonction) (disjonction) (coïncidence)
• Portail de la logique
• Portail des mathématiques
Récupérée de « http://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique) »
Catégories : Algèbre | Fonction logique | [+]
Catégorie cachée : Portail:Mathématiques/Articles liés
http://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire
Système binaire
Un article de Wikipédia, l'encyclopédie libre.
Sommaire
[masquer]
• 1 Conversions
o 1.1 Énumération des premiers nombres
o 1.2 Expression d'un nombre
o 1.3 Du système décimal vers le système binaire
o 1.4 Entre les bases 2, 8 et 16
1.4.1 Du binaire vers octal ou hexadécimal
1.4.2 Vers le binaire
o 1.5 Table des valeurs des groupements de chiffres binaires
• 2 Voir aussi
• 3 Liens externes
Conversions [modifier]
Énumération des premiers nombres [modifier]
décimal binaire
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
ainsi:
11
+ 1
====
100
Détail :
L'arithmétique binaire (plus simplement le calcul binaire) est utilisé par les systèmes
électroniques les plus courants (calculatrices, ordinateurs, etc.) car le niveau de tension peut
servir à représenter les deux chiffres 0 et 1 ; 0 représentant l'état bas et 1 l'état haut.
Tout nombre peut s'écrire en binaire, c'est à dire qu'il se décompose en somme de puissances
de 2(1;2;4;8;16;32;64;...), par exemple 35 se décompose en :
1 * 25 + 0 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 32 + 2 + 1 = 35
donc le nombre décimal 35 se note 100011 en binaire.
1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 1 * 26 + 1 * 25 + 1 *
24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20
suite de 1010-10100
Pour développer l'exemple ci-dessus, le nombre 45 853 écrit en base décimale provient de la
somme de nombres ci-après écrits en base décimale. À dire vrai, pour proposer une méthode
plus simple à comprendre, il faut trouver la puissance de 2 la plus grande possible inférieure
ou égale au nombre de départ. On soustrait au nombre d'origine (RO) cette puissance, en
notant un 1, puis l'on cherche à nouveau un multiple (RM) pour le reste (Rr).
• 1. RO= RM1+ Rr1
• 2. Rr1=RM2+Rr2
• 3. Rr2=RM3+Rr3
...
32 768 1 fois 32 768 on fait 2 multiplié 14 fois par lui même soit 215
+ 0 0 fois 16 384 on fait 2 multiplié 13 fois par lui même soit 214
+ 8 192 1 fois 8 192 idem 12 idem 213
+ 4 096 1 fois 4 096 idem 11 idem 212
+ 0 0 fois 2 048 idem 10 idem 211
+ 0 0 fois 1 024 idem 9 idem 210
+ 512 1 fois 512 idem 8 idem 29
+ 256 1 fois 256 idem 7 idem 28
+ 0 0 fois 128 idem 6 idem 27
+ 0 0 fois 64 idem 5 idem 26
+ 0 0 fois 32 idem 4 idem 25
+ 16 1 fois 16 idem 3 idem 24
+ 8 1 fois 8 idem 2 idem 23
+ 4 1 fois 4 idem 1 idem 22
+ 0 0 fois 2 idem 0 idem 21 =
2
+ 1 1 fois 1 20 =
1
=45 853
Soit écrit en système positionnel et en numération décimale (en écrivant les puissances de 2) :
Soit en système positionnel et en numération binaire puisque l'on ne reporte pas les puissances
de 2
45 853 décimal s'écrit 1011 0011 0001 1101 binaire (séparés par groupes de
4 bits pour aérer la lecture).
Ce nombre nécessite 16 bits pour son écriture (il est compris entre 215 et 216). L'autre méthode
pour convertir un nombre décimal en base 2 est d'utiliser des successions de divisions par le
nombre 2. Ainsi, on a:
Les bases 8 (octale) et 16 (hexadécimale) sont des bases multiples de la base 2. Ces deux
bases ont été couramment employées en informatique et pour des raisons pratiques; ces bases
étant fortement liées à la base 2 et les nombres écrits dans ces bases étant plus "manipulables"
(car d'écriture plus courte) par l'intellect humain. L'écriture de nombres dans ces bases est
facilement obtenue par regroupement de chiffres de l'écriture du nombre en base 2.
On pourrait facilement étendre ce principe à toutes les bases qui sont puissances de 2.
Il suffit de convertir la valeur de chacun des chiffres sous leur forme binaire.
0000 0 0 0 1000 8 10 8
0001 1 1 1 1001 9 11 9
0010 2 2 2 1010 10 12 A
0011 3 3 3 1011 11 13 B
0100 4 4 4 1100 12 14 C
0101 5 5 5 1101 13 15 D
0110 6 6 6 1110 14 16 E
0111 7 7 7 1111 15 17 F
[ Enrouler ]
v·d·m
Autre
base d'or (φ),
base
Arithmétique binaire
Un article de Wikipédia, l'encyclopédie libre.
L'arithmétique binaire est la manière dont on mène les calculs en base 2 (système binaire).
C'est un concept essentiel de l'informatique. En effet, les processeurs des ordinateurs sont
composés de millions de transistors (imprimés sur un circuit électronique) qui chacun ne gère
que des bits 0 (« le courant ne passe pas ») et 1 (« le courant passe »).
Un calcul informatique n'est donc qu'une suite d'opérations sur des paquets de 0 et de 1,
appelés octets lorsqu'ils sont regroupés par 8.
Sommaire
[masquer]
• 1 Codage binaire
o 1.1 Numération de position
1.1.1 Représentation des entiers positifs
1.1.2 Représentation des entiers négatifs
1.1.2.1 Complément à un
1.1.2.2 Complément à deux
o 1.2 La soustraction
o 1.3 Code de Gray ou binaire réfléchi
o 1.4 Décimal codé binaire (« binary coded decimal », ou BCD)
• 2 Applications
o 2.1 Théorie de l'information
o 2.2 Logique
o 2.3 Informatique
• 3 Voir aussi
o 3.1 Articles connexes
Le codage le plus courant est l'équivalent en base deux de la numération de position que nous
utilisons quotidiennement en base 10.
Représentation des entiers positifs [modifier]
Avec N bits, ce système permet de représenter les nombres entre 0 et 2N-1. Il est donc possible
de compter sur ses dix doigts jusqu'à 1023 (210-1) en binaire. Il suffit d'affecter à chaque doigt
une valeur binaire (pouvant être représenté par un doigt plié).
2^10-1=1 024-1
=1 023
Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs. On
ajoute pour cela à la représentation un bit de signe, placé en tête. Un bit de signe nul indique
une valeur positive, un bit de signe positionné à un une valeur négative. Cette règle permet de
rester cohérent avec le système de représentation des entiers positifs : il suffit d'ajouter un 0
en tête de chaque valeur.
Complément à un [modifier]
Ce codage, fort simple, consiste à inverser la valeur de chaque bit composant une valeur
binaire.
Le souci avec un tel système est qu'il y a toujours deux représentations de la valeur 0 pour un
nombre de bit donné.
-5 1011
+7 0111
__ ____
2 (1) 0010 (on 'ignore' la retenue)
Avec n bits, ce système permet de représenter les nombres entre -2n-1 et 2n-1-1.
La soustraction [modifier]
Principe de base :
0−0=0
0 − 1 = 1 (avec retenue)
1−0=1
1−1=0
Exemple de soustraction :
Ce codage permet de ne faire changer qu'un seul bit à la fois quand un nombre est augmenté
d'une unité. Le nom du code vient de l'ingénieur américain Frank Gray qui déposa un brevet
sur ce code en 1953. Monsieur Louis Gros publia en 1872 un opuscule où ce code était
présenté pour la première fois en lien avec un casse-tête. Monsieur Gros était clerc de notaire
à Lyon.
0 0000 0 0000
1 0001 1 0001
2 0010 2 0011
3 0011 3 0010
4 0100 4 0110
5 0101 5 0111
6 0110 6 0101
7 0111 7 0100
Pour passer d'une ligne à la suivante, on inverse le bit le plus à droite possible conduisant à un
nombre nouveau.
Le nom de code binaire réfléchi vient d'une méthode de construction plus pratique pour
choisir quel bit inverser quand on passe d'un nombre au suivant:
Exemple :
0 0 0 .0 0 00 0 .00 0 000
1 1 1 .1 1 01 1 .01 1 001
miroir->------ 2 .11 2 011
2 .1 2 11 3 .10 3 010
3 .0 3 10 -------
4 .10 4 110
5 .11 5 111
6 .01 6 101
7 .00 7 100
Une autre méthode de calcul permettant de passer d'un nombre de Gray au suivant, et qui
présente l'avantage de ne pas nécessiter de connaître l'ensemble des nombres précédents est la
suivante :
Ce code est surtout utilisé pour des capteurs de positions, par exemple sur des règles optiques.
En effet, si on utilise le code binaire standard, lors du passage de la position un (01) à deux
(10), permutation simultanée de 2 bits, il y a un risque de passage transitoire par trois (11) ou
zéro (00), ce qu'évite le code de Gray.
On remarquera que le passage du maximum (sept sur 3 bits) à zéro se fait également en ne
modifiant qu'un seul bit. Ceci permet par exemple d'encoder un angle, comme la direction
d'une girouette : 0=Nord, 1=Nord-Est, 2=Est, ... 7=Nord-Ouest. Le passage de Nord-Ouest à
Nord se fait également sans problème en ne changeant qu'un seul bit (voir Roue de codage).
Le décodage des signaux lumineux d'un axe de souris mécanique est un décodage de code de
Gray à 2 bits (décodage différentiel dans ce cas, car ce que l'on veut obtenir n'est pas la valeur
décodée mais les transitions ±1 mod 4 de la valeur décodée).
Le code Gray sert également dans les tables de Karnaugh utilisées lors de la conception de
circuits logiques.
g = n ^(n >> 1)
Algorithme de décodage rapide pour des mots de 64 bits (pour des mots de 32 bits, remplacer
32 par 16) :
long grayInverse(long n) {
long ish, ans, idiv;
ish = 1;
ans = n;
while(true) {
idiv = ans >> ish;
ans ^= idiv;
if (idiv <= 1 || ish == 32)
return ans;
ish <<= 1; // double le nb de shifts la prochaine fois
}
}
Ce codage consiste à représenter chacun des chiffres de la numérotation décimale sur 4 bits:
Avec n bits (n multiple de 4), il est possible de représenter les nombres entre 0 et 10n/4-1. Soit
approximativement entre 0 et 1.778n-1. Le BCD est un code redondant, en effet certaines
combinaisons ne sont pas utilisées (comme 1111 par exemple).
Cette représentation évite par construction tous les problèmes gênants de cumul d'arrondi qui
interviendraient lors de la manipulation de grands nombres dépassant la taille des circuits en
arithmétique entière et obligent à recourir au flottant. Il est cependant possible de manipuler
des nombres à précision arbitraire en utilisant un codage plus efficace que le BCD.
Applications [modifier]
Théorie de l'information [modifier]
Logique [modifier]
La logique classique est une logique bivalente: une proposition est soit vraie, soit fausse. Il est
donc possible de représenter la vérité d'une proposition par un chiffre binaire. On peut par
exemple modéliser les opérations de l'arithmétique binaire à l'aide de l'algèbre de Boole.
L'algèbre de Boole représente un cas très particulier d'usage des probabilités ne faisant
intervenir que les seules valeurs de vérité 0 et 1. Voir Théorème de Cox-Jaynes.
Informatique [modifier]
• Algèbre de Boole
• Système binaire
• Calcul en virgule flottante
• Nombre négatif
• Complément à 1
• Complément à 2
• Auguste De Morgan
• Entier en précision multiple
http://fr.wikipedia.org/wiki/Nombre_n%C3%A9gatif
Nombre négatif
Un article de Wikipédia, l'encyclopédie libre.
Un nombre négatif est un nombre qui est inférieur (inférieur ou égal) à zéro, tel que −3 ou
−π. Ceux-ci comprennent les entiers négatifs, les nombres rationnels négatifs, les nombres
irrationnels négatifs, les nombres réels négatifs. Zéro compte comme un nombre négatif.
Lorsqu'un nombre est négatif et non nul, il est dit strictement négatif (cette terminologie
diffère donc de la terminologie anglo-saxonne, pour laquelle un "positive number" est un
nombre strictement positif, zéro n'étant considéré ni comme un nombre positif, ni comme un
nombre négatif).
Les entiers négatifs peuvent être regardés comme une extension des entiers naturels, telle que
l'équation x − y = z ait une solution significative pour toutes les valeurs de x et y. Les autres
ensembles de nombres peuvent être alors construits, comme des extensions progressivement
plus élaborées ou comme des généralisations à partir des entiers.
Les nombres négatifs sont utiles pour décrire des valeurs sur une échelle qui descend au-
dessous de zéro, telle que la température, et aussi en comptabilité où ils peuvent être utilisés
pour représenter des dettes ou des déficits. En comptabilité, les dettes sont souvent
représentées par des nombres écrits en rouge, ou par un nombre entre parenthèses.
Lorsque nous parlons de nombres positifs ou négatifs, les adjectifs positif et négatif doivent
être pris au sens large, c'est-à-dire que zéro n'est pas exclus et zéro est donc un nombre (le
seul) à la fois positif et négatif. Si nous considérons des nombres positifs ou négatifs mais non
nuls, alors nous devons préciser strictement positifs ou strictement négatifs.
5 + (−3) = 5 − 3 = 2
−2 + (−5) = −2 − 5 = −7
Soustraire un nombre positif d'un plus petit nombre positif donne un résultat négatif :
4 − 6 = −2 (si vous avez en poche 4€ et que vous dépensez 6€, alors vous avez une
dette de 2€).
−3 − 6 = −9 (si vous avez une dette de 3€ et que vous dépensez encore 6€, alors vous
avez une dette de 9 €).
5 − (−2) = 5 + 2 = 7 (si vous disposez d'une valeur nette de 5 € et que vous vous
débarrassez d'une dette de 2€, alors il vous reste une valeur 7 € en poche).
Aussi:
(−8) − (−3) = −5 (si vous avez une dette de 8€ et que vous vous débarrassez d'une
dette de 3€, alors vous aurez encore une dette de 5€).
Multiplication [modifier]
Le produit d'un nombre négatif par un nombre positif donne un résultat négatif: (−2) · 3 = −6.
La raison de cela est que ce produit peut être interprété comme une addition répétée: (−2) · 3
= (−2) + (−2) + (−2) = −6. Nous pouvons l'interpréter autrement, si vous avez une dette de 2€,
et si votre dette est triplée, alors vous terminez avec une dette de 6 €
La multiplication de deux nombres négatifs donne un résultat positif: (−3) · (−4) = 12. Cette
situation ne peut pas être interprétée comme une addition répétée, et l'analogie avec une dette
n'aide pas non plus. La raison essentielle de cette règle est que nous voulons que la
multiplication soit distributive :
Le membre de gauche de cette relation est égal à 0 · (−4) = 0. Le côté droit est une somme de
−12 + (−3) · (−4); pour que les deux membres soient égaux, nous avons besoin que (−3) · (−4)
= 12.
Notion de nombre
Ensembles usuels Extensions
ℕ ensemble des entiers naturelsℍ algèbre des quaternions
ℤ groupe des entiers relatifs O algèbre des octonions
D ensemble des décimaux S algèbre des sédénions
ℚ corps des rationnels autres hypercomplexes
ℝ corps des réels ℚp corps des p-adiques
ℂ corps des complexes hyperréels et superréels
ordinaux et cardinaux
surréels et pseudoréels
Propriétés particulières
pair ou impair • premier ou composé • carré • parfait
positif ou négatif • dyadique • irrationnel
algébrique ou transcendant • imaginaire pur
nombre de Liouville • normal • univers
constructible • calculable • transfini • infiniment petit
Exemples d'importance historique
π : constante d'Archimède (≈ 3,141592654…)
√2 : racine carrée de deux (≈ 1,414213562…)
φ : nombre d'or (≈ 1,618033989…)
0 : zéro
i : unité imaginaire de carré valant −1
e : constante de Neper (≈ 2,718281828…)
ℵ0 : aleph-zéro premier cardinal infini
autres constantes mathématiques
Notions connexes
chiffre • numération • fraction • opération • calcul • algèbre
arithmétique • suite d'entiers • ∞ infini • chiffre significatif
http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_un
Complément à un
Un article de Wikipédia, l'encyclopédie libre.
Le complément à un est l'opération qui inverse la valeur de chacun des bits d'un nombre
binaire. Il est la première étape du complément à deux.
Exemple [modifier]
Récupérée de « http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_un »
Catégorie : Arithmétique binaire
http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux
Complément à deux
Un article de Wikipédia, l'encyclopédie libre.
Le complément à deux est une représentation binaire des entiers relatifs qui permet
d'effectuer les opérations arithmétiques usuelles naturellement.
bit de signe
0 1 1 1 1 1 1 1 = 127
0 0 0 0 0 0 1 0 = 2
0 0 0 0 0 0 0 1 = 1
0 0 0 0 0 0 0 0 = 0
1 1 1 1 1 1 1 1 = −1
1 1 1 1 1 1 1 0 = −2
1 0 0 0 0 0 0 1 = −127
1 0 0 0 0 0 0 0 = −128
Entier de 8 bits en complément à deux
Explication [modifier]
La notation est utilisée sur des écritures de nombres de longueur donnée (nombres écrits
couramment sur 8, 16, 32 ou 64 bits). Dans une telle écriture on utilise le bit de poids fort (bit
le plus à gauche) du nombre pour contenir la représentation de son signe (positif ou négatif, le
zéro étant considéré comme positif).
La première idée est de marquer le signe du nombre de façon simple : le signe puis la
représentation de sa valeur absolue. Ainsi :
v
00000010 = +2 en décimal
v
10000010 = (-2) en décimal
C'est pour remédier à ces problèmes que l'on utilise la notation en complément à deux. Les
nombres positifs sont représentés comme attendu; par contre les nombres négatifs sont
obtenus de la manière suivante :
• On inverse les bits de l'écriture binaire de sa valeur absolue (opération binaire NOT),
on fait ce qu'on appelle le complément à un,
• On ajoute 1 au résultat (les dépassements sont ignorés).
La même opération effectuée sur un nombre négatif donne le nombre positif de départ: 2n-(2n-
x)=x.
Le bit de signe est automatiquement mis à 1 par l'opération d'inversion. On peut vérifier que
cette fois l'opération 3 + (-4) se fait sans erreur :
Le complément à deux de 11111111 est 00000001 soit 1 en décimal, donc 11111111 = (-1) en
décimal.
Cette notation est le complément à 10. Pour obtenir la représentation d'un nombre négatif il
faut complémenter à 9 chaque chiffre puis ajouter 1 au résultat. Ainsi pour obtenir la
représentation de -123 on fait : ...0123 transformé en ...9876 puis en ...9877.
Un exemple plus complet. Essayons de calculer dans une telle représentation 12+(-7) 12
s'écrit ...012, -7 s'écrit (...07 complémenté en ...92 puis additionné de 1 donne ...93) ...93.
Additionnons:
...012
+ ....93
--------
....05
Récupérée de « http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux »
Catégorie : Arithmétique binaire
http://fr.wikipedia.org/wiki/Virgule_flottante
Virgule flottante
Un article de Wikipédia, l'encyclopédie libre.
Les nombres à virgule flottante sont les nombres les plus souvent utilisés dans un ordinateur
pour représenter des valeurs non entières. Ce sont des approximations de nombres réels.
Les nombres à virgule flottante possèdent un signe s (dans {-1, 1}), une mantisse m (aussi
appelée significande) et un exposant e. Un tel triplet représente un réel s.m.be où b est la base
de représentation (généralement 2 sur ordinateur, mais aussi 16 sur certaines anciennes
machines, 10 sur de nombreuses calculatrices, ou éventuellement toute autre valeur). En
faisant varier e, on fait « flotter » la virgule décimale. Généralement, m est d'une taille fixée.
Sommaire
[masquer]
• 1 Mises en œuvre
o 1.1 Norme IEEE 754
o 1.2 Flottants étendus
• 2 Précautions d'emploi
• 3 Liens externes
La norme IEEE 754 (reprise par la norme internationale CEI 60559) spécifie deux formats de
nombres en virgule flottante (et deux formats étendus optionnels) et les opérations associées.
La quasi-totalité des Architectures d'ordinateurs actuelles, y compris IA32, PowerPC, et
AMD64, incluent une implémentation matérielle des calculs sur flottants IEEE, directement
dans le microprocesseur, garantissant une exécution rapide.
Les deux formats fixés par la norme IEEE 754 sont sur 32 bits (« simple précision ») et 64
bits (« double précision »). La répartition des bits est la suivante, où 1 ≤ M < 2 :
Encodage Signe Exposant Mantisse Valeur d'un nombre
Simple précision 32 bits 1 bit 8 bits 23 bits
Double précision 64 bits 1 bit 11 bits 52 bits
Le tableau ci-dessus indique les bits représentés. Le premier bit de la mantisse d'un nombre
normalisé étant toujours 1, il n'est pas représenté dans ces deux formats : on parle de bit
implicite. Pour ces deux formats, les précisions sont donc respectivement de 24 et de 53 bits.
Dans la pratique, seule la double précision étendue est encore utilisée, dans sa forme
minimale (1+15+64 = 80 bits, le fameux type étendu de l'IA32).
Lorsque les flottants IEEE offrent une précision insuffisante, on peut devoir recourir à des
calculs sur des flottants en précision supérieure. Citons notamment la bibliothèque MPFR.
• leur précision limitée, qui se traduit par des arrondis (dus aux opérations, mais aussi
aux changements de base implicites, si la base est différente de 10) qui peuvent
s'accumuler de façon gênante. Pour cette raison, les travaux de comptabilité ne sont
pas effectués en virgule flottante, car tout doit tomber juste au centième près. En
particulier, la soustraction de deux nombres très proches provoque une grande perte de
précision relative : on parle de « cancellation ».
• une plage d'exposants limitée, pouvant donner lieux à des « overflows » (lorsque le
résultat d'une opération est plus grand que la plus grande valeur représentable) et à des
« underflows » (lorsqu'un résultat est plus petit, en valeur absolue, que le plus petit
flottant normalisé positif), puis à des résultats n'ayant plus aucun sens.
Il est par exemple tentant de réorganiser des expressions en virgule flottante comme on le
ferait d'expressions mathématiques. Cela n'est cependant pas anodin, car les calculs en virgule
flottante, contrairement aux calculs sur les réels, ne sont pas associatifs. Par exemple, dans un
calcul en flottants IEEE double précision, (260+1)-260 ne donne pas 1, mais 0. La raison est que
260+1 n'est pas représentable exactement et est approché par 260.
• NaN (« not a number »), qui sera par exemple le résultat de la tentative de division
flottante de zéro par zéro, ou de la racine carrée d'un nombre strictement négatif. Les
NaN se propagent : la plupart des opérations faisant intervenir un NaN donnent NaN
(des exceptions sont possibles, comme NaN puissance 0, qui peut donner 1).
• Un infini positif et un infini négatif, qui sont par exemple le résultat d'un « overflow »
en arrondi au plus près.
Une autre valeur du champ d'exposant est réservée aux zéros (signés) et aux dénormalisés.
Récupérée de « http://fr.wikipedia.org/wiki/Virgule_flottante »
Catégorie : Calcul informatique
Complément à 2
Une truc rapide pour trouver le complément à 2 m'a été fourni par l'un
d'entre vous (merci!). Il consiste à repérer le premier 1 à partir de la droite
(ou le dernier 1 à partir de la gauche) et à complémenter tous les bits à
gauche de ce dernier. Les autres bits sont laissés intacts.
Exemple : 0000 1100.
On inverse les 5 bits à gauche du premier 1 à partir de la droite (en
rouge), ce qui donne 1111 0100.
Exemple : 1111 1111
On inverse les 7 bits à gauche du premier 1 de droite, ce qui donne 0000
0001.
Soustraction binaire
Dans la soustraction binaire, on procède comme en décimal. Quand la
quantité à soustraire est supérieure à la quantité dont on soustrait, on
emprunte 1 au voisin de gauche. En binaire, ce 1 ajoute 2 à la quantité
dont on soustrait, tandis qu'en décimal il ajoute 10.
Dans l'exemple suivant, on doit soustraire 0 - 1 pour le bit de droite. On
emprunte 1 au bit de gauche et on a maintenant 10 - 1, i.e. 2 - 1 = 1.
Ensuite on retranche cet emprunt du bit de gauche, et on a 1 - 0 - 1 = 0.
Voici une animation d'une soustraction qui contient tous les cas possibles :
1 1 1 1
1 0 1 0 0 1 1 0
0 0 1 1 1 1 0 0
1 1 1
1 =
2-1 = 1 0 1 0
2–1-1 = 0 1 0 1 0
3–1–1= 1 0 1 0 1 0
2 - 0 - 1= 1 1 0 1 0 1 0
1-0-1= 0 1 1 0 1 0 1 0
Division binaire
Arithmétique hexadécimale
Pour effectuer les opérations binaires, il est souvent plus rapide et moins
sujet à l'erreur de travailler en hexadécimal.
Addition
Soustraction
Multiplication
et finalement :
et
+++++++++
Le calcul binaire
Ces tables et les chiffres 0 et 1 permettent de décomposer les opérations de calcul classique
en une suite d'opérations effectuées au moyen d'opérateurs booléens. C'est le calcul binaire.
0+0=0 , 0+1=1 , 1+1=0 et je retiens 1 etc...
Addition
L'addition se fait avec les mêmes règles qu'en décimale: On
additionne les bits de poids faibles (A droite) lorsque la somme
de deux bits de mêmes poids dépasse la valeur de l'unité la plus
grande (dans le cas du binaire:1) on a des retenues, elles sont
reportées sur le bit de poids plus fort suivant...
0x0=0
0x1=0
1x0=0
1x1=1