home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_02_05 / 2n05021a < prev    next >
Text File  |  1991-03-27  |  738b  |  37 lines

  1. program byteFlip;
  2.  
  3.  var
  4.   theTime: longint; (* keep time in 60ths of a second *)
  5.   value: longint;
  6.   i: integer;
  7.  
  8. (* Here is a crude high-level language function to change 
  9. byte order *)
  10. (* no effort at optimization has been taken *)
  11.  function FlipOrder (n: longint): longint;
  12.   var
  13.    result: longint;
  14.  begin
  15.   FlipOrder := BSL(BAND(n, $000000FF), 24) + BAND(BSL(n, 8), 
  16. $00FF0000) + 
  17. BitAnd(BSR(n, 8), $0000FF00) + BitAnd(BSR(n, 24), $000000FF);
  18.  end;
  19.  
  20. begin
  21.  ShowText;
  22.  
  23.  value := $01020304;
  24.  theTime := TickCount;
  25.  
  26.  for i := 0 to 9999 do
  27.   begin
  28.    value := FlipOrder(value);
  29.   end;
  30.  
  31.  theTime := TickCount - theTime;
  32.  writeln('Time per flip =', (theTime / 60.0) / 10000.0 : 12 : 6);
  33.  readln;
  34.  
  35. end.
  36.  
  37.