|
|
|
|
- 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
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 Versions 21 et supérieures 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 4 | Entier sur 8 | Autre | Entier sur 4 | Entier sur 4 | Entier sur 8 | Entier sur 4 | Entier sur 8 | Entier sur 8 | Entier sur 8 | Entier sur 8 | Autre | Entier sur 4 | Entier sur 8 | Entier 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érande | Résultat | Entier sur 4 | Entier sur 4 | Entier sur 8 | Entier sur 8 | Autre | Entier sur 8 |
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 1 | Résultat | Entier sur 4 | Entier sur 4 | Entier sur 8 | Entier sur 8 | Autre | Entier sur 8 |
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 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 1 | wlEntier_1 | wlEntier_2 | wlEntier_4 | Entier sur 4 | 1 Ã 4 | 1 Ã 2 | 1 | Entier sur 8 | 1 Ã 8 | 1 Ã 4 | 1 Ã 2 |
Si la valeur de <n> est incorrecte, l'opération renvoie 0. Versions 28 et supérieures 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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|