Node:Operations for Integer and Ordinal Types, Next:Complex Number Operations, Previous:Memory Management Routines, Up:Library Routines

#### Operations for Integer and Ordinal Types

- Bit manipulations: The BP style bit shift operators `shl` and `shr` exist in GPC as well as bitwise `and`, `or`, `xor` and `not` for integer values.

      2#100101 and (1 shl 5) = 2#100000

  GPC also supports `and`, `or`, `xor` and `not` as procedures:

      program BitOperatorProcedureDemo;
      var x: Integer;
      begin
        x := 7;
        and (x, 14);  { sets x to 6 }
        xor (x, 3);   { sets x to 5 }
      end.

- Succ, Pred: The standard functions `Succ` and `Pred` exist in GPC and accept a second parameter.
- Increment, decrement: The BP built-in Procedures `Inc` and `Dec` exist in GPC.

      program IncDecDemo;
      var
        i: Integer;
        c: Char;
      begin
        Inc (i);     { i := i + 1; }
        Dec (i, 7);  { i := i - 7; }
        Inc (c, 3);  { c := Succ (c, 3); }
      end.

- `Min`, `Max`: These are a GNU Pascal extension and work for reals as well as for ordinal types. Mixing reals and integers is okay, the result is real then.