|
|
Langage
C & C++
Opérateurs |
|
Opérateurs
arithmétiques
|
||
|
Opération
|
Signe
|
Exemple
|
|
addition
|
+
|
s
= a + b
|
|
soustraction
|
-
|
d
= a - b
|
|
multiplication
|
*
|
p
= a * b
|
|
division
|
/
|
q
= a / b
|
|
Modulo
(reste de la division)
|
%
|
r
= a % b
|
|
Opérateurs
bit à bit ( bitwise )
|
||
|
Opération
|
Signe
|
Exemples
|
|
et
(and)
|
&
|
--a
= 0 1 0 1
--b = 0 1 1 0 a&b = 0 1 0 0 |
|
ou
inclusif (or)
|
|
|
..a
= 0 1 0 1
..b = 0 1 1 0 a|b = 0 1 1 1 |
|
ou
exclusif (xor)
|
^
|
..a
= 0 1 0 1
..b = 0 1 1 0 a^b = 0 0 1 1 |
|
complément
(inversion des bits)
|
~
|
a
= 0 1 0 1
~a = 1 0 1 0 |
|
décalage
à gauche de n bits
|
<<
|
b
= a << n
|
|
décalage
à droite de n bits
|
>>
|
b
= a >> n
|
|
Opérateurs
d'affectation
|
||
|
Opération
|
Signe
|
Exemples
et
équivalences
|
|
affectation
simple
|
=
|
lvalue
= expr;
|
|
multiplication
et affectation
|
*=
|
x
*= 3;
x = x * 3; |
|
division
et affectation
|
/=
|
x
/= 3;
x = x / 3; |
|
modulo
et affectation
|
%=
|
x
% = 3;
x = x % 3; |
|
addition
et affectation
|
+=
|
x
+= 3;
x = x + 3; |
|
soustraction
et affectation
|
-=
|
x
-= 3;
x = x - 3; |
|
décalage
gche et affectation
|
<<=
|
x
<<= 3;
x = x << 3; |
|
décalage
dte et affectation
|
>>=
|
x
>>= 3;
x = x >> 3; |
|
et
bit à bit et affectation
|
&=
|
x
&= 3;
x = x & 3; |
|
ou
bit à bit et affectation
|
|=
|
x
|= 3;
x = x | 3; |
|
xor
bit à bit et affectation
|
^=
|
x
^= 3;
x = x ^= 3; |
|
Post
et pré incrémentations et décrémentations
|
||
|
Incrémenter
une variable signifie lui ajouter un. Décrémenter
: lui soustraire un. Dans les exemples : on suppose que la valeur de la variable "a" est, au départ, 3. |
||
|
Nom
|
Signe
|
Exemples
|
|
Pré
incrémentation
|
++
a
|
(5 * ++a)
égale 20; ensuite a égale 4; |
|
Post
incrémentation
|
a
++
|
(5 * a++)
égale 15; ensuite a égale 4; |
|
Pré
décrémentation
|
--
a
|
(5 * --a)
égale 10; ensuite a égale 2; |
|
Post
décrémentation
|
a
--
|
(5 * a--)
égale 15; ensuite a égale 2; |
|
Opérateurs booléens
d'assertion
|
||
|
Opérateurs
|
Assertion
|
Opérandes
a et b
|
|
a
== b
|
a
égale b
|
numériques
caractères |
| a != b | a différent de b | numériques caractères |
|
a
< b
|
a
inférieur à b
|
numériques
|
|
a
<= b
|
a
inférieur ou égal à b
|
numériques
|
|
a
> b
|
a
supérieur à b
|
numériques
|
|
a
>= b
|
a
supérieur ou égal à b
|
numériques
|
|
Opérateurs
|
Opération
|
Opérandes
a et b
|
|
a
&& b
|
a
et b
|
booléens
|
| a || b | a ou b | booléens |
| !a | non a | booléen |
|
Exercice
d'application
Conversion d'une chaîne en minuscules ou en majuscules |
||
|
Prérequis : Définition des Tableaux, initialisation - Chaînes de caractères. -
Ce programme
convertit toute la chaîne en minuscules. Explications : On peut
donc obtenir une minuscule en masquant une majuscule par l'octet 00100000
en binaire Donc
: Allons
plus loin, 0x20 est le code ASCII de l'espace qui s'écrit :
' ' (soit deux
apostrophes séparées par un espace). Enfin,
si "lettre" désigne un identificateur de caractère,
elle sera systématiquement transformée en minuscule par
l'opération : lettre|=' '; On vous
laisse le soin de montrer que la transformation en majuscule se fait par
: lettre&=~' '; Nous
rappelons que le "tilde" ~ est l'opérateur
de complémentation bit à bit du langage C,
Observez comment on est arrivé à réduire le code en insérant les opérations :
|
|
|