Manipulations binaires
Les fonctions décrites dans cette bibliothèques ne sont normalement pas appelées directement dans un template. Ces fonctions ne sont pas dans le cœur de Templeet car elle ne sont que rarement utilisées. |
Cette fonction accepte un nombre variable d'arguments, et fait des "ou" booléen entre eux.
Exemple :
x=bwor(1,0,1);
// ou bien en notation avec opérateurs:
x=1|0|1;
Le résultat dans les deux cas est:
1
Cette fonction accepte un nombre variable d'arguments, et fait des "et" booléen entre eux.
Exemple :
x=bwand(1,0,1);
// ou bien en notation avec opérateurs:
x=1&0&1;
Le résultat dans les deux cas est:
0
Cette fonction accepte un nombre variable d'arguments, et fait des "ou exclusif" booléen entre eux.
Exemple :
x=bwxor(1,0,1);
// ou bien en notation avec opérateurs:
x=1^0^1;
Le résultat dans les deux cas est:
0
Cette fonction accepte un argument, et effectue un "non" booléen.
Exemple :
x=bwnot(1);
// ou bien en notation avec opérateurs:
x=!1;
Le résultat dans les deux cas est:
0
Cette fonction prend deux arguments, et effectue un décalage à gauche du premier argument par le second.
Exemple :
~rem(
x=0x1A;
)
x en binaire:
~sprintf("%b",x)
x décalé à gauche de 1 bit:
~sprintf("%b",bwlshift(x,1))
la même chose mais avec la notation opérateur:
~sprintf("%b",x << 1)
Le résultat est:
x en binaire:
11010
x décalé à gauche de 1 bit;
110100
la même chose mais avec la notation opérateur:
110100
Cette fonction prend deux arguments, et effectue un décalage à droite du premier argument par le second.
Exemple :
~rem(
x=0x1A;
)
x en binaire:
~sprintf("%b",x)
x décalé à droite de 1 bit:
~sprintf("%b",bwrshift(x,1))
la même chose mais avec la notation opérateur:
~sprintf("%b",x >> 1)
Le résultat est:
x en binaire:
11010
x décalé à droite de 1 bit:
1101
la même chose mais avec la notation opérateur:
1101