Bitwise operations

Basic types / Numbers / Integer

var
  A, B, C1, C2, C3, C4, C5, C6: Integer;
begin
  A := 5; //0101
  B := 6; //0110

  C1 := A and B;
  //C1 is 4 (0100)

  C2 := A or B;
  //C2 is 7 (0111)

  C3 := A xor B;
  //C3 is 3 (0011)

  //shift right
  C4 := A shr 1;
  //C4 is 2 (0010)

  //shift left
  C5 := B shl 1;
  //C5 is 12 (1100)

  //bits inversion
  C6 := not B;
  //C6 is -7

  WriteLn('c1 = ', C1);
  WriteLn('c2 = ', C2);
  WriteLn('c3 = ', C3);
  WriteLn('c4 = ', C4);
  WriteLn('c5 = ', C5);
  WriteLn('c6 = ', C6);
end.