DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Le contenu de cette page a été mis à jour en version 28.  Consultez la documentation 28 dès maintenant.
Aide / WLangage / Syntaxe WLangage / Opérateurs
  • Utilisation
  • Opérateurs binaires
  • ET, OU et OU exclusif binaires
  • NON binaire
  • Opérateurs de décalage
  • Syntaxes
  • Notes
  • Opérateur d'accès direct aux bits
  • Accès à un bit
  • Accès à un entier sur 1, 2 ou 4 octets
  • Accès à la valeur de plusieurs bits
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Utilisation
Les opérations sur des valeurs binaires sont réalisées :
  • avec des fonctions du WLangage : ETBinaire, OUBinaire, NONBinaire, OUExclusifBinaire.
  • avec des opérateurs spécifiques : opérateurs binaires, opérateurs de décalage vers la droite et vers la gauche, opérateur d'accès aux bits.
Nouveauté 18
Widget Android Cette fonctionnalité est disponible en mode Widget Android.
Versions 21 et supérieures
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Opérateurs binaires

ET, OU et OU exclusif binaires

Les syntaxes suivantes peuvent être utilisée :
  • ET binaire : <Valeur 1> & <Valeur 2>
  • OU binaire : <Valeur 1> | <Valeur 2>
  • OU exclusif binaire : <Valeur 1> || <Valeur 2>
Le type de résultat peut être différent selon le type des opérandes :
Valeur 2

Valeur 1
Entier sur 4Entier sur 8Autre
Entier sur 4Entier sur 4Entier sur 8Entier sur 4
Entier sur 8Entier sur 8Entier sur 8Entier sur 8
AutreEntier sur 4Entier sur 8Entier sur 8

NON binaire

La syntaxe est la suivante : ~ <Valeur>
Le type de résultat peut être différent selon le type de l'opérande :
OpérandeRésultat
Entier sur 4Entier sur 4
Entier sur 8Entier sur 8
AutreEntier sur 8
Opérateurs de décalage

Syntaxes

  • Décalage vers la gauche :
    <Valeur 1> bitDécaleGauche <Valeur 2>
    bitDécaleGauche(<Valeur1>, <Valeur 2>)
  • Décalage vers la droite :
    <Valeur 1> bitDécaleDroite <Valeur 2>
    bitDécaleDroite(<Valeur1>, <Valeur 2>)

Notes

  • Les bits de <Valeur 1> sont décalés de <Valeur 2> bits vers la droite ou vers la gauche.
    Par exemple :
    bitDécaleGauche(4,1) // Renvoie 8

    En effet, 4 en décimal correspond à 0100 en binaire. Décalé de 1 bit vers la gauche, on obtient en binaire 1000 ce qui correspond à 8 en décimal.
    bitDécaleDroite(4,2) // Renvoie 1

    En effet, 4 en décimal correspond à 0100 en binaire. Décalé de 2 bits vers la droite, on obtient en binaire 0001 ce qui correspond à 1 en décimal.
  • Les bits qui dépassent la taille de <Valeur 1> sont ignorés. Par exemple :
    bitDécaleGauche(4,30) // Renvoie 0
    bitDécaleDroite(4,4) // Renvoie 0
  • Si <Valeur 2> est supérieur à la taille de <Valeur 1> (32 pour un entier sur 4 et 64 pour un entier sur 8), le résultat est toujours 0. Par exemple :
    bitDécaleGauche(4,35) // Renvoie 0
  • Le type de résultat peut être différent selon le type de l'opérande :
    Opérande Valeur 1Résultat
    Entier sur 4Entier sur 4
    Entier sur 8Entier sur 8
    AutreEntier sur 8

    AndroidWidget AndroidJava L'opérateur de décalage binaire à gauche réinjectera par la droite les bits qui dépassent la taille de l'opérande. L'opérateur de décalage binaire à droite réinjectera par la gauche les bits qui dépassent la taille de l'opérande. Par exemple :
    e est un entier sur 4
    res est un entier sur 4
    e = 1
    res = e bitDécaleGauche 32 // Renvoie 0 en WinDev et 1 en Java
Opérateur d'accès direct aux bits

Accès à un bit

Syntaxe : <Valeur 1> [ <n> ]
Cette syntaxe permet de lire ou de modifier la valeur du bit <N> dans la valeur <Valeur 1>.
Le comptage des bits commence à 1 de la gauche vers la droite (du poids le plus faible au poids le plus fort) :
  • 1 à 32 pour un entier sur 4 octets,
  • 1 à 64 pour un entier sur 8 octets.
Si la valeur de <n> est incorrecte, l'opération renvoie 0.
Exemples :
// Positionne les cinquième et septième bits à 1
n est un entier
n[5] = 1
n[7] = Vrai
// Teste la valeur des bits 4, 5, 6 et 7
SI n[4] ALORS Trace(4) // pas affiché
SI n[5] ALORS Trace(5) // affiche 5
SI n[6] ALORS Trace(6) // pas affiché
SI n[7] ALORS Trace(7) // affiche 7
// Affecter une valeur en modifiant les bits
n est un entier = 0
// On allume le bit numéro 1 : n vaut 1 en décimal
n[1] = 1
// On allume également le bit numéro 8 : n vaut 129 en décimal (2 puissance 0 + 2 puissance 7)
n[8] = 1
Versions 28 et supérieures
AndroidJava Cette fonctionnalité est désormais disponible.

Accès à un entier sur 1, 2 ou 4 octets

Syntaxes :
  • <Valeur 1> [ <n>, wlEntier_1 ]
  • <Valeur 1> [ <n>, wlEntier_2 ]
  • <Valeur 1> [ <n>, wlEntier_4 ]
Ces syntaxes permettent de lire ou de modifier la valeur de l'entier sur 1, 2 ou 4 octets dans la valeur <Valeur 1>.
Valeurs possibles pour <n> selon le type de <Valeur 1> :
Valeur 1wlEntier_1wlEntier_2wlEntier_4
Entier sur 41 à 41 à 21
Entier sur 81 à 81 à 41 à 2

Si la valeur de <n> est incorrecte, l'opération renvoie 0.
Versions 28 et supérieures
AndroidJava Cette fonctionnalité est désormais disponible.

Accès à la valeur de plusieurs bits

Syntaxes :
  • <Valeur 1> [ A <n> ]
  • <Valeur 1> [ <n> A ]
  • <Valeur 1> [ <n> A <o> ]
  • <Valeur 1> [ <n> SUR <Nombre> ]
Ces syntaxes permettent de lire ou de modifier la valeur correspondant aux bits indiqués.
Versions 28 et supérieures
AndroidJava Cette fonctionnalité est désormais disponible.
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 13/07/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale