home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / pastrans.zip / SAMPLES / MASKSHFT.PAS < prev    next >
Pascal/Delphi Source File  |  1990-02-09  |  956b  |  31 lines

  1. {$c+,y+}
  2. program test;
  3. const    y = #3;        { HEART SYMBOL- }
  4.     z = $aff;    { HEXADECIMAL aff }
  5.     w = 0677;    { OCTAL 677 }
  6. var    x, c : char;
  7.     i : integer;
  8. begin
  9.  for i:= 1 to 16 do
  10.   begin
  11.    c := chr(ord('a') + i);
  12.    x := chr(ord(y) + i);
  13.    writeln('Some characters, i == ', i:2,
  14.         ' ':1, c:1, ' ':1, x:1);
  15.    { MASKING OPERATORS: and, or, xor, not, shl, and shr }
  16.    { THESE ARE 'BITWISE' (I. E. ONES COMPLEMENT) OPERATORS }
  17.    { FOR INTEGER OPERANDS: shl == 'SHIFT LEFT'; }
  18.    { shr == 'SHIFT RIGHT'; xor == 'EXCLUSIVE OR'; }
  19.    { ALSO AVAILABLE ARE THE ISO STANDARD PASCAL BOOLEAN }
  20.    { OPERATORS '<>' (EXCLUSIVE OR), '<=',(IMPLICATION), }
  21.    { AND '=' (EQUIVALENCE) FOR BOOLEAN OPERANDS. }
  22.    c := chr((ord(c) and z) xor w + i);
  23.    x := chr(ord(c) xor not (w + i) or 3);
  24.    if odd(i) then
  25.     c := chr(ord(c) shl 1)
  26.      else x := chr(ord(x) shr 1);
  27.    writeln('Some characters, i == ', i:2,
  28.         ' ':1, c:1, ' ':1, x:1)
  29.   end
  30. end.
  31.