& — Opérateur ET binaire.
Les opérateurs binaires effectuent le ET binaire, le OU binaire, la négation binaire et la non-équivalence binaire.
a & b (ET binaire)
où les arguments a et b peuvent être des expressions. Ils sont convertis à la valeur entière la plus proche selon la précision de la machine et l'opération est ensuite effectuée.
La priorité de ces opérateurs est inférieure à celle des opérateurs arithmétiques, mais supérieure à celle des comparaisons.
On peut utiliser des parenthèses pour forcer des groupements particuliers.
Voici un exemple des opérateurs binaires ET et OU. Il utilise le fichier bitwise.csd.
Exemple 38. Exemple des opérateurs binaires.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 instr 1 iresultOr = p4 | p5 iresultAnd = p4 & p5 prints "%i | %i = %i\\n", p4, p5, iresultOr prints "%i & %i = %i\\n", p4, p5, iresultAnd endin instr 2 ; decimal to binary converter Sbinary = "" inumbits = 8 icount init inumbits - 1 pass: ivalue = 2 ^ icount if (p4 & ivalue >= ivalue) then Sdigit = "1" else Sdigit = "0" endif Sbinary strcat Sbinary, Sdigit loop_ge icount, 1, 0, pass Stext sprintf "%i is %s in binary\\n", p4, Sbinary prints Stext endin </CsInstruments> <CsScore> i 1 0 0.1 1 2 i 1 + . 1 3 i 1 + . 2 4 i 1 + . 3 10 i 2 2 0.1 12 i 2 + . 9 i 2 + . 15 i 2 + . 49 e </CsScore> </CsoundSynthesizer>