# Coding for fast execution

This section gives examples of coding techniques that you will find in SDL tutorials and demonstrations.

**Masks**Masks are used for bitwise Boolean operations as in the following example.

MyByte := MyByte AND 15;

The mask 15_{10}(00001111_{2}) preserves the last 4 bits (second nibble) of MyByte and clears the first nibble. The code is equivalent toMyByte := MyByte MOD 16;.

**Shift Operations**Shift operations achieve fast integer multiplication and division by powers of two. See the following examples.

MyInt := MyInt shl 1; //MyInt is doubled by the

**sh**ift**l**eft MyInt := MyInt shl 4; // MyInt is multiplied by 16 (by 2^4) MyInt := MyInt shr 1; //Equivalent to MyInt := MyInt DIV 2 MyInt := MyInt shr 4; //Equivalent to MyInt := MyInt DIV 16**Lookup Tables**Trigonometry functions take some time to evaluate and you are unlikely to require values for angles other that whole numbers of degrees. You can save processing time during a game by calculating them in advance then looking up the calculated values when needed. See Jason McMillen's Artillery demonstration later in this tutorial.