In [[programmeertalen->programmeertaal]] als C, [[C++]], Java en JavaScript bestaat er een verschil tussen de ''logic and'' (de dubbele && die je bij ''if-statements'' gebruikt) en de ''bitwise and'' (een enkele &). De '''''bitwise and''''' voert een bitsgewijze en-operatie uit. Alleen de binaire '''eenen''' die twee (of meer) getallen gemeenschappelijk hebben blijven over in het eindresultaat. Bijvoorbeeld 2 getallen in een 4 bits omgeving: '''int a = 1&2;''' 1 is binair: 0001 2 is binair: 0010 ----------------- & resultaat: 0000 = 0 decimaal En: '''int b = 6&3;''' 6 is binair: 01'''1'''0 3 is binair: 00'''1'''1 ----------------- & resultaat: 00'''1'''0 = 2 decimaal Bekijk dus de bits --bit voor bit-- in verticale richting. In sommige gevallen kun je bitwise and gebruiken als vervanging van [[modulo]]. bitwise and is (op meeste CPU's) sneller en dus je code sneller (maar op een DSP-processor kan een deling weleens net zolang duren als een ''binary and''). Andere term voor hetzelfde: ''bit mask''. Wordt onder andere (in [[digitale signaalbewerking->DSP]]) toegepast om snelle circulaire buffers op huis-tuin-en-keuken-CPU's te bewerkstelligen. Beeldbewerking: ''sprites'' en ''layers''. Een laatste [[C++]]-voorbeeld: int getal = 13; if (getal & 1) // Negeer alle bits behalve het LSBit. cout << getal << " is ONEVEN."; else cout << getal << " is EVEN."; Als je er snel even mee wil spelen, zie: [[/~toine/BitLogicOp.html]]