Welcome to the Creatures Wiki! Log in and join the community.

ANDV

From Creatures Wiki
Revision as of 18:52, 7 February 2006 by Alexwatson (talk) (c2e caos)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

ANDV is a CAOS command for a bitwise operation.

Usage

Syntax: ANDV var (int variable) mask (int)

This performs a bitwise AND on var. Bitwise AND matches up the bits of var and mask which both contain 1, and produces a new sequence of bits which contains 1s in these positions. In C, ANDV would be written var = var & mask.

The arguments must be integers (though the second will be cast if a float). They will be treated as signed 32-bit using two's complement.

Examples

Here is a simple AND operation:

SETV va00 24  * 24 = %11000
ANDV va00 14  * 14 = %01110
OUTV va00
    8         * 8  = %01000

This implements va00 = va00 XOR va01 using ANDV and ORRV:

                         * va00 = A; va01 = B
SETV va02 va00 NOTV va02 * va02 = ~A
SETV va03 va01 NOTV va03 * va03 = ~B
ANDV va00 va03           * va00 = A & ~B
ANDV va02 va01           * va03 = ~A & B
ORRV va00 va02           * va00 = (A & ~B) | (~A & B)

As an example, performing the above with va00 = 5 (%0101) and va01 = 3 (%0011) yields va00 = 6 (%0110).

See also

References