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

avec Java Discussion :

Soustraction entre deux caractères ASCII


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Soustraction entre deux caractères ASCII
    Bonjour,

    je bloque sur une misérable ligne de code d'un cours de java :

    Soit s une chaine de caractères (uniquement des entiers), genre "0123456789"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    n = (int) s.chatAt (k) - (int) '0' ;
    je sais à quoi elle sert mais je ne comprend pas comment elle marche .

    On m'a expliqué qu'on récupérait le caractère ASCII du chiffre de la chaine et qu'on lui soustrait une certaine valeur pour retrouver l'entier correspondant.

    Jusque la ça va, mais pour convertir un chiffre d'une chaine vers un entier, faut-il toujours soustraire par l'entier '0' ou c'est un cas particulier? Et pourquoi les (int) entre parenthèses?

    Merci d'avance pour vos explications !

  2. #2
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    c'est juste pour t'éviter de connaitre les codes ASCII par coeur!
    en fait tu fais la différence entre le code ASCII de ta valeur et le code ASCII de 0 ce qui te retourne bien la valeur de ton nombre
    la valeur ascii de 8 est 56, celle de 0 est 48 donc quand tu fais 56-48 tu retombes bien sur 8!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    En ASCII, les charactères codant les entiers commencent à 48 si je ne me trompe pas. Donc si tu converties juste ton char en sa valeur ascii, tu obtiendras donc un entier entre 48 et 58. Donc pour obtenir sa valeur "réelle", il suffit de lui enlever 48.


    Pour le (int), il s'agit d'un cast. C'est à dire que tu casts, transforme ou traduit si tu préfers, un char en int.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Ok merci beaucoup!

    Grâce à vous je sens que je vais tout déchirer aux exams

  5. #5
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    euh ...
    juste pour vérifier ... tu sais bien sûr qu'en Java il ne s'agit pas de code ASCII (il y a certes des plages de correspondance) ....
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

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

Discussions similaires

  1. Soustraction entre deux images
    Par deb_Sous_Python dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 30/01/2009, 15h52
  2. soustraction entre deux dates en java
    Par zekabyle dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/04/2007, 12h12
  3. Soustraction entre deux dates
    Par Jayceblaster dans le forum Delphi
    Réponses: 8
    Dernier message: 17/02/2007, 13h10
  4. [RegEx] Savoir si un texte est contenu entre deux caractères
    Par CodeMikiman dans le forum Langage
    Réponses: 5
    Dernier message: 04/02/2007, 11h25
  5. Soustraction entre deux dates
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/01/2006, 10h59

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