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 [24/02/2023 21:03]
agp91 aut
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [25/02/2023 11:00]
agp91 [Les opérateurs arithmétiques]
Ligne 5: Ligne 5:
   * Commentaires : scripts   * Commentaires : scripts
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi :  ​+  * Suivi :  ​{{tag>​en-chantier}}
     * Création par [[user>​Hypathie]] le 08/04/2014     * Création par [[user>​Hypathie]] le 08/04/2014
     * Testé par [[user>​Hypathie]] ​ Avril 2014     * Testé par [[user>​Hypathie]] ​ Avril 2014
Ligne 20: Ligne 20:
   * [[doc:​programmation:​shells:​bash-vii-globs-etendus-regex| Bash : Variables, globs étendus, ERb, ERe]]   * [[doc:​programmation:​shells:​bash-vii-globs-etendus-regex| Bash : Variables, globs étendus, ERb, ERe]]
  
 +<note important>​ 
 +Page en court de réécriture 
 +</​note>​
 ===== Introduction ===== ===== Introduction =====
  
Ligne 30: Ligne 32:
 Le résultat de l'​évaluation d'une expression sera toujours un entier décimal signé. Le résultat de l'​évaluation d'une expression sera toujours un entier décimal signé.
  
-Pour réaliser des opérations avec des nombres à virgule ou plus complexes, ​il faut nous tourner vers des commandes externes tel que **bc** (non installé par défaut) ou **awk**. Ou alors utiliser d'​autres langages interprétés tel que **perl**, **python**, etc (awk, perl et python sont disponibles par défaut sur les systèmes Debian).+Pour réaliser des opérations avec des nombres à virgule ou plus complexes, ​nous devons ​nous tourner vers des commandes externes tel que **bc** (non installé par défaut) ou **awk**. Ou alors utiliser d'​autres langages interprétés tel que **perl**, **python**, etc (awk, perl et python sont disponibles par défaut sur les systèmes Debian).
  
 Avec **let** et **<​nowiki>​((...))</​nowiki>​**,​ la plage numérique autorisée est : **-9223372036854775808 < 0 > 9223372036854775807** Avec **let** et **<​nowiki>​((...))</​nowiki>​**,​ la plage numérique autorisée est : **-9223372036854775808 < 0 > 9223372036854775807**
  
-Après l'​évaluation des expression ​qu'​elles contiennent,​ **let** et **<​nowiki>​((...))</​nowiki>​** renvoient le code de retour :+Après l'​évaluation des expressions ​qu'​elles contiennent,​ **let** et **<​nowiki>​((...))</​nowiki>​** renvoient le code de retour :
  
   * **0**, si le résultat est inférieur ou supérieur à 0.   * **0**, si le résultat est inférieur ou supérieur à 0.
   * **1**, si le résultat est égale à 0.   * **1**, si le résultat est égale à 0.
  
-La commande **<​nowiki>​((...))</​nowiki>​** peut-être préfixée du caractère de remplacement **$** pour former la commande **<​nowiki>​$((...))</​nowiki>​**,​ afin d’être ​remplacer ​par l'​évaluation de l’expression qu'​elle contient.+La commande **<​nowiki>​((...))</​nowiki>​** peut-être préfixée du caractère de remplacement **$** pour former la commande **<​nowiki>​$((...))</​nowiki>​**,​ afin d’être ​remplacée ​par l'​évaluation de l’expression qu'​elle contient.
  
-<​note ​important>+<​note ​warning>
 La commande **$[...]** équivalente à la commande **<​nowiki>​$((..))</​nowiki>​** __**ne doit plus être utilisée**__.\\ ​ La commande **$[...]** équivalente à la commande **<​nowiki>​$((..))</​nowiki>​** __**ne doit plus être utilisée**__.\\ ​
 \\  \\ 
Ligne 52: Ligne 54:
 </​note>​ </​note>​
  
-=====Opérateurs ​arithmétiques =====+===== Les systèmes numériques ===== 
 + 
 +Les expressions numériques évaluées par **let** et **<​nowiki>​((...))</​nowiki>​** peuvent contenir des nombres de différent système numérique.\\  
 +  
 +L'​évaluation des expression (le résultat) sera toujours retourné en entier décimal. 
 + 
 +  * Sans précision les nombres sont en base 10 (décimal). 
 +  * Préfixé d'un **0**, le nombre est un octal (base 8). 
 +  * Préfixé de **0x** (ou **0X**), le nombre est un hexadécimal (base 16). 
 + 
 +Si non, la syntaxe suivante peut-être utilisée : 
 + 
 +  * [**base#​**]**n** 
 + 
 +Avec : 
 + 
 +  * **base#** où **base** est un nombre en décimal désignant la base utilisée (de 2 à 64). 
 +  * **n** Le nombre lui même : 
 +    * Jusqu'​à la base 10, le nombre contient que des chiffres. 
 +    * De la base 11 à la base 36, les lettres minuscules ou majuscules peuvent être utilisées indifféremment. 
 +    * De la base 37 à la base 64, les lettres minuscules, majuscules, @ et _ sont à utiliser dans cet ordre. 
 +===== Les opérateurs ​arithmétiques ===== 
 + 
 +Les opérateurs arithmétiques permettent de réaliser des calculs numériques classiques. 
 + 
 +|  Liste des opérateurs arithmétiques ​ ||| 
 +^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^ 
 +| Opérateurs unaires ||| 
 +| **''​+''​** //​expr//​ | Signe positif | Valeur de //​expr//​ | 
 +| **''​-''​** //​expr//​ | Signe négatif | Opposé de //​expr//​ | 
 +| Opérateurs binaires ||| 
 +| //expr1// **''​+''​** //​expr2//​ | Addition | //expr2// ajouté à //​expr1//​ | 
 +| //expr1// **''​-''​** //​expr2//​ | Soustraction | //expr2// retiré de //​expr1//​ | 
 +| //expr1// **''​*''​** //​expr2//​ | Multiplication| //expr1// multiplié par //​expr2//​ | 
 +| //expr1// **''/''​** //​expr2//​ | Division | //expr1// divisé 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 | 
 + 
 +Exemples : 
 + 
 +<code user> 
 +a=42 # Affecte 42 à la variable a 
 +echo $((-a)) # Retourne l'​opposé de la valeur contenue dans la variable a. 
 + 
 +echo $((21+025)) #​ Retourne l’addition de l'​octal 25 au décimal 21.
  
-^opérateurs ​ ^opérations ​                    ^ +echo 3/2=$((3/2)) # Retourne 3/2 
-| ''<​nowiki>​ +</nowiki> '' ​   | addition ​                     | +echo 3/2 reste $((3%2)) # Retourne le reste de 3/2
-| ''​ <​nowiki>​-</​nowiki>​ '' ​   | soustraction ​                 | +
-| ''​ <​nowiki>/</​nowiki>​ '' ​   | division ​(récup. le quotient) |  +
-| ''​ <​nowiki>​%</​nowiki>​ '' ​   | modulo ​(récup. le reste     | +
-| ''​ <​nowiki>​* </nowiki>'' ​   | multiplication ​               | +
-| ''​ <​nowiki>​**<​/nowiki> '' ​  | puissance ​(''​bash ​2.02 et sup.''​|+
  
->Pour les calculs complexes bash n'est pas adapté, il faut utiliser le langage ''​bc''​.+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>​
 =====Opérateurs d'​affectation arithmétique===== =====Opérateurs d'​affectation arithmétique=====
  
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