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

Langage Java Discussion :

Petite question de syntaxe! :)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Par défaut Petite question de syntaxe! :)
    Bonsoir,

    J'ai juste une petite question rapide, pour ma culture disons :

    Au cours d'un de mes dev, je suis tombé sur la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Font boldItalicFont = new Font(Font.TIMES_ROMAN, 12, Font.BOLD | Font.ITALIC);
    Et donc ma question : que signifie le pipe ("|") dans l'appel à la méthode? est-ce une syntaxe JAVA ou simplement une syntaxe particulière à mon API (iText, pour génération de PDF)?

    Je précise juste que le résultat de cette syntaxe est à priori le même que si j'envoyai "Font.BOLD" et "Font.ITALIC" en tant que deux paramètres distincts.

    Merci par avance!

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 178
    Par défaut
    bonsoir,
    c'est pas un OU binaire (comparaison bit à bit, je crois) ?

  3. #3
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Citation Envoyé par Rolf-IV Voir le message
    bonsoir,
    c'est pas un OU binaire (comparaison bit à bit, je crois) ?
    Tu a raison , ou un ou inclusif bit a bit je crois aussi, je pense aussi que Font.BOLD prend la valeur 0 ou 1

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Par défaut
    ah! alors au temps pour moi!
    Mais alors, quelqu'un peut-il rapidement m'expliquer comment cela fonctionne? voici la classe en question :
    http://www.docjar.com/html/api/com/l...Font.java.html
    Je ne vois aucun constructeur particulier... Comment est interprété ce "OU" ? (j'ai du mal à trouver sur le net)

    Merci à vous!

  5. #5
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Re
    Normalement un ou inclusif bit a bit ( il y a aussi le ou exclusif ^)
    fonctionne comme ceci :
    0 | 0 zero ou zero donc 0
    0 | 1 zero ou un donc 1
    1 | 1 un ou un donc c'est 1
    0 | 1 zero ou un donc c'est 1

    J'espère que j'ai pas fait de betises
    Exemple
    (style & UNDERLINE) == UNDERLINE;

    c'est le & et bit a bit tu prends la valeur en binaire de style et celle en binnaire de UNDERLINE et tu fais le & bit a bit

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hai,

    Les différentes valeurs qui sont gérées avec ces OU, comme tu dis, sont toutes définies avec des valeurs = une puissance de 2.

    Par exemple (ce ne sont pas les valeurs réelles, seulement un exemple)

    BOLD = 2 (soit ...00010 en binaire);
    ITALIC = 16 (soit ...10000 en binaire);

    Quand tu mets le résultat de BOLD | ITALIC dans une variable, elle a donc la valeur 16 + 2 = 18 (soit ...10010 en binaire), et quand tu passes la valeur ainsi obtenue à une fonction, elle sait facilement retrouver les différentes valeurs, puisque chacune correspond à un seul bit dans la variable.

  7. #7
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    BOLD = 2 (soit ...00010 en binaire);
    ITALIC = 16 (soit ...10000 en binaire);
    On va essayer de faire le calcul :

    00010
    | ( ou inclusif )
    10000
    -------
    10010
    16 8 4 2 1
    1 0 0 1 0

    donc 2 + 16 = 18 je parle biensure de ou inclusif bit a bit, ni de java ni de quoi que se soit d'autre.
    N'empeche qu'avec C++ c comme ça que sa marche

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Par défaut
    Ahhh

    Merci beaucoup droggo pour ta réponse, je crois que je comprend mieux maintenant! ca explique donc les valeurs 0, 1, 2, 4 et 8 pour les différentes polices dans le code de la classe!!!!! Ainsi que cette ligne d'ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /** this is a possible style. */
      109   	public static final int BOLDITALIC = BOLD | ITALIC;
    Je comprends donc mieux le résultat que j'obtiens. Je vais me coucher moins con!

    Je trouve en fait ce système assez interessant, pour pouvoir gérer la possiblité que l'utilisateur souhaite entrer ou non plusieurs valeurs pour un paramètre... je tâcherai de m'en souvenir à l'occasion!

    En tout cas merci à tous pour vos réponses, c'est tout à fait ce que je cherchais!

    A bientot!

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Par défaut
    bonsoir Rolf-IV

    non je ne pense pas qu'il s'agisse d'un OU binaire, qui serait plutot "||" en java. Et le résultat ici dans ma méthode est plutot que les deux "paramètres" sont pris en compte, ma police retournée est grasse ET italique!

    Merci beaucoup de ta rapidité

  10. #10
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Il s'agit bien d'un ou binaire bit à bit à la différence de || qui est un ou conditionnel.

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

Discussions similaires

  1. Petite question de syntaxe
    Par Tensa28 dans le forum Langage SQL
    Réponses: 20
    Dernier message: 25/02/2013, 09h52
  2. Petite question de syntaxe SQL
    Par PopolDal dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 24/05/2012, 07h18
  3. [Flex4] Petite question de syntaxe
    Par yvancoyaud dans le forum Flex
    Réponses: 1
    Dernier message: 29/03/2012, 11h10
  4. Petite question de syntaxe
    Par ryan dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/01/2008, 19h00
  5. Petite question de syntaxe
    Par gmonta31 dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2006, 11h08

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