DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

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.
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

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.

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.
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