IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Soustraction avec des zéros


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut Soustraction avec des zéros
    Bonjour,

    On est bien d'accord que 35 moins 27, ça fait 8, hein ? D'ailleurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [mer. 04 février (~) user] test=$[35-27]
    [mer. 04 février (~) user] echo $test
    8
    [mer. 04 février (~) user]
    alors pourquoi ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [mer. 04 février (~) user] test=$[035-027]
    [mer. 04 février (~) user] echo $test
    6
    [mer. 04 février (~) user]
    Comment faut-il faire pour trouver le bon résultat en conservant les zéros en début de nombre ? C'est possible ?

    Bien à vous,

    Laloupiote

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Dans ton premier exemple, tu fais une soustraction avec des nombres décimaux.

    Dans ton deuxième exemple, tu fais une soustraction avec des nombres octaux.

    Pour garder les zéro, il faut préciser dans quelle base tu es:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ echo $[035-027]
    6
    $ echo $[8#035-8#027]
    6
    $ echo $[10#035-10#027]
    8
    Cordialement.

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour,

    on peut même faire pire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ test=$[35-27]
    $ echo $test
    8
    $ test=$[035-027]
    $ echo $test
    6
    $ test=$[35-027]
    $ echo $test
    12
    $ test=$[035-27]
    $ echo $test
    2
    Nous, les humains, nous comptons dans un système décimal (10 chiffres). Les ordinateurs eux, comptent dans un système binaire (2 chiffres).
    En C++, et manifestement, comme dans ton cas, l'ajout d'un 0 inutile au début indique qu'il faut considérer le chiffre octal (8 chiffres).

    Ainsi, 0358=2910 et 0278=2310

    Et là, tu retrouves tes petits:
    35-27=8
    29-23=6
    35-23=12
    29-27=2

    A noter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ test=$[038-27]
    -bash: 038: valeur trop grande pour la base (error token is "038")
    Le 8 n'existe pas en base 8...
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    Merci à tous les deux pour ces explications.
    sujet résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire une soustraction avec des heures
    Par patmar83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/06/2008, 22h53
  2. avoir un enregistrement avec des zéros quand la requête est vide
    Par dodie84 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/05/2008, 14h41
  3. Réponses: 9
    Dernier message: 09/04/2008, 18h30
  4. NE pas autoriser des chiffres avec des zéros
    Par celiaaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 01/11/2007, 14h57
  5. Soustraction avec des données
    Par darkspoilt dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/05/2007, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo