logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [25/02/2023 03:46]
agp91 [Les bases arithmétiques]
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [25/02/2023 14:02]
agp91
Ligne 79: Ligne 79:
 Les opérateurs arithmétiques permettent de réaliser des calculs numériques classiques. Les opérateurs arithmétiques permettent de réaliser des calculs numériques classiques.
  
-|  ​Les opérateurs arithmétiques ​ |||+|  ​Liste des opérateurs arithmétiques ​ |||
 ^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^ ^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^
 | Opérateurs unaires ||| | Opérateurs unaires |||
Ligne 87: Ligne 87:
 | //expr1// **''​+''​** //​expr2//​ | Addition | //expr2// ajouté à //​expr1//​ | | //expr1// **''​+''​** //​expr2//​ | Addition | //expr2// ajouté à //​expr1//​ |
 | //expr1// **''​-''​** //​expr2//​ | Soustraction | //expr2// retiré de //​expr1//​ | | //expr1// **''​-''​** //​expr2//​ | Soustraction | //expr2// retiré de //​expr1//​ |
-| //expr1// **''​*''​** //​expr2//​ | Multiplication| //expr1// multiplié ​par par //​expr2//​ |+| //expr1// **''​*''​** //​expr2//​ | Multiplication| //expr1// multiplié par //​expr2//​ |
 | //expr1// **''/''​** //​expr2//​ | Division | //expr1// divisé par //​expr2//​ | | //expr1// **''/''​** //​expr2//​ | Division | //expr1// divisé par //​expr2//​ |
 | //expr1// **''​%''​** //​expr2//​ | Modulo | Reste de la division de //expr1// par //expr2// | | //expr1// **''​%''​** //​expr2//​ | Modulo | Reste de la division de //expr1// par //expr2// |
 | //expr1// **''<​nowiki>​**</​nowiki>''​** //expr2//| Puissance | //expr1// multiplié par lui-même //expr2// fois | | //expr1// **''<​nowiki>​**</​nowiki>''​** //expr2//| Puissance | //expr1// multiplié par lui-même //expr2// fois |
  
-=====Opérateurs d'​affectation arithmétique=====+Exemples :
  
-^opérateurs ​                        ​^opérations ​                      ^ +<code user
-| ''​<nowiki>=</​nowiki>​ '' ​          | affectation arithmétique ​       | +a=42 # Affecte 42 à la variable a 
-| ''<​nowiki>​+=</​nowiki>​ '' ​         | incrémentation ​                 | +echo $((-a)) # Retourne l'opposé de la valeur contenue dans la variable a.
-| ''<​nowiki>​-=</​nowiki>​ '' ​         | décrémentation ​                 | +
-| ''<​nowiki>/​=</​nowiki>​ '' ​         | affectation par division ​       | +
-| ''<​nowiki>​+=</​nowiki>​ '' ​         | affectation par multiplication ​ | +
-| ''<​nowiki>​%=</​nowiki>​ '' ​         | afectation du reste             |+
  
-**Voir :**+echo $((21+025)) #​ Retourne l’addition de l'​octal 25 au décimal 21. 
 + 
 +echo 3/​2=$((3/​2)) #​ Retourne 3/2 
 +echo 3/2 reste $((3%2)) # Retourne le reste de 3/2 
 + 
 +echo a=$a a^2=$((a**2)) # Retourne la valeur de la variable élevée à la puissance 2 
 + 
 +unset a 
 +</​code><​code>​ 
 +-42 
 +42 
 +3/2=1 
 +3/2 reste 1 
 +a=42 a^2=1764 
 +</​code>​ 
 +===== Les opérateurs d'​affectation ===== 
 + 
 +Les opérateurs d'​affectation,​ permettent affecter une valeur à une variable ou d'en modifier la valeur. 
 + 
 +|  Liste des opérateurs d'​affectation ​ ||| 
 +^  Opérateurs ​ ^  Désignations ​ ^ Résultats ​ ^ 
 +| Opérateurs unaires ||| 
 +| **''​++''​** //var// | Ré-affectation par la pré-incrémentation à 1 | //​var// ​ = //var// + 1 puis retourne //var// | 
 +| //var// **''​++''​** | Ré-affectation par la post-incrémentation à 1 | Retourne //var//, puis //​var// ​ = //var// + 1 | 
 +| **''​--''​** //var// | Ré-affectation par la pré-décrémentation à 1 | //​var// ​ = //var// - 1 puis retourne //var// | 
 +| //var// **''​--''​** | Ré-affectation par la post-décrémentation à 1 | Retourne //var//, puis //​var// ​ = //var// - 1 | 
 +| Opérateurs binaires ||| 
 +| //var// **''​=''​** //expr// | Simple affectation | Affecte //epxr// à la variable //var//| 
 +| //var// **''​+=''​** //expr// | Ré-affectation par l'​incrémentation | //var// = //var// + //​expr//​ | 
 +| //var// **''​-=''​** //expr// | Ré-affectation par la décrémentation | //var// = //var// - //expr// |  
 +| //var// **''​*=''​** //expr// | Ré-affectation par la multiplication | //var// = //var// * //​expr//​ | 
 +| //var// **''/​=''​** //expr// | Ré-affectation par la division | //var// = //var// / //​expr//​ | 
 +| //var// **''​%=''​** //expr// | Ré-affectation par modulo | //var// = //var// % //​expr//​ | 
 + 
 +Exemples ​: 
 + 
 +<code user> 
 +declare -p a 
 +let a=24 ; declare -p a 
 +((a=42)) ; echo a=$a 
 + 
 +let 'a += 42' ; echo "a+=42 -> a=$a"​ 
 +(( a /= 2 )) ; echo "​a/​=2 ​ -> a=$a"​ 
 + 
 +unset a 
 +</​code><​code>​ 
 +bash: declare: a : non trouvé 
 +declare -- a="​24"​ 
 +a=42 
 +a+=42 -> a=84 
 +a/=2  -> a=42 
 +</​code>​ 
 + 
 +<​note>​ 
 +Contrairement à la commande ​**declare -i**, les commandes **let** et **<​nowiki>​((..))</​nowiki>​** ne donnent pas l'​attribut numérique (**-i**) à une variable. 
 +</​note>​ 
 + 
 +<code user> 
 +declare -i b=42 
 +declare -p b 
 +echo "​Pré-incrémentation à 1  : Avant b=$b ; Pendant b=$((++b)) ; Après : b=$b"​ 
 +echo "​Post-décrémentation à 1 : Avant b=$b ; Pendant b=$((b--)) ; Après : b=$b"​ 
 + 
 +unset b 
 +</​code><​code>​ 
 +declare -i b="​42"​ 
 +Pré-incrémentation à 1  : Avant b=42 ; Pendant b=43 ; Après : b=43 
 +Post-décrémentation à 1 : Avant b=43 ; Pendant b=43 ; Après : b=42 
 +</​code>​ 
 + 
 +Voir aussi :
   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​typologie-des-variables|typologie de variables]]**   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​typologie-des-variables|typologie de variables]]**
   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​variables-numeriques-et-calculs|variables numériques et calculs]]**   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​variables-numeriques-et-calculs|variables numériques et calculs]]**
  
 +===== Les opérateurs relationnels =====
 +
 +Les opérateurs relationnels permettent la comparaison entre deux epressions numériques.\\ ​
 +Voir [[doc:​programmation:​shells:​page-man-bash-iii-les-operateurs-de-comparaison-numerique#​comparaison-numerique-avec|Comparaison numérique avec ((...))]]
 +
 +===== Les opérateurs bit-à-bit =====
 +
 +Les opérateurs bit-bit, opèrent sur des nombres binaires (une suite de 0 ou de 1).
 +Les nombres sont d'​abords convertis en binaire, l’opération est appliquée, puis le résultat est reconverti en décimal.
 +
 +|  Liste des opérateurs bit-à-bit ​ |||
 +^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^
 +| Opérateur unaire |||
 +| **''​~''​** //expr// | Négation binaire | Retourne le complément à 1 de //expr//\\ (~1 -> 0 ; ~0 -> 1) |
 +| Opérateurs binaires |||
 +| //expr1// **''&''​** //expr2// | ET binaire | Retourne le ET bit-à-bit ​ entre //expr1// et //expr2//\\ (1 ET 1 -> 1 ; 0 ET 0 -> 0 ; 1 ET 0 -> 0 ; 0 ET 1 -> 0) |
 +| //expr1// **''​|''​** //expr2// | OU binaire | Retourne le OU bit-à-bit entre //expr1// et //expr2//\\ (1 OU 1 -> 1 ; 0 OU 0 -> 0 ; 1 OU 0 -> 1 ; 0 OU 1 -> 1) |
 +| //expr1// **''​^''​** //expr2// | OU binaire exclusif (XOR) | Retourne le OU bit-à-bit exclusif entre //expr1// et //expr2//\\ (1 XOR 1 -> 0 ; 0 XOR 0 -> 0 ; 1 XOR 0 -> 1 ; 0 XOR 1 -> 1) |
 +| //expr1// **''<​nowiki><<</​nowiki>''​** //expr2//| Décalage binaire à gauche | Retourne le décalage de //expr2// bit(s) à gauche de //expr1//\\ (//expr2// 0 ajoutés(s) à droite d'//​expr1//​) |
 +| //expr1// **''<​nowiki>>></​nowiki>''​** //expr2//| Décalage binaire à droite | Retourne le décalage de //expr2// bit(s) à droite de //expr1//\\ (//expr2// bit(s) tronqué(s) à droite d'//​expr1//​) |
 +
 +Exemples
 +<code user>
 +echo $((~42))
 +echo $((42^42))
 +echo $((42<<​2))
 +</​code><​code>​
 +-43
 +0
 +168
 +</​code>​
 +
 +Voir aussi :
 +
 +  * [[atelier:​chantier:​bash:​les-operations-binaires|Les opérations binaire]]
 =====Opérateurs binaires ===== =====Opérateurs binaires =====
 Ces opérateurs s'​utilisent sur des binaires, (sur des 1 et des zéro). Ces opérateurs s'​utilisent sur des binaires, (sur des 1 et des zéro).
doc/programmation/shells/page-man-bash-iv-symboles-dans-les-calculs-mathematiques.txt · Dernière modification: 26/04/2023 19:29 par bendia

Pied de page des forums

Propulsé par FluxBB