Guest User

int24

a guest
May 7th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.22 KB | None | 0 0
  1. type
  2.  int24 = array[0..2] of byte; //operations are slower, but memory is 3 bytes
  3.  
  4. function IntToInt24(x: integer): int24;
  5. begin
  6.  result[0] := x and 255;
  7.  result[1] := (x shr 8) and 255;
  8.  result[2] := (x shr 16) and 255;
  9. end;
  10.  
  11. function Int24ToInt(x: int24): integer;
  12. begin
  13.  result := (x[2] shl 16) + (x[1] shl 8) + x[0];
  14. end;
  15.  
  16. procedure read24(var x: int24);
  17. var
  18.  y: integer;
  19. begin
  20.  read(y);
  21.  x := IntToInt24(y);
  22. end;
  23.  
  24. procedure readln24(var x: int24);
  25. var
  26.  y: integer;
  27. begin
  28.  readln(y);
  29.  x := IntToInt24(y);
  30. end;
  31.  
  32. procedure write24(x: int24);
  33. begin
  34.  write(Int24ToInt(x));
  35. end;
  36.  
  37. procedure writeln24(x: int24);
  38. begin
  39.  writeln(Int24ToInt(x));
  40. end;
  41.  
  42. function sloj24(x, y: int24): int24;
  43. begin
  44.  result[0] := (x[0] + y[0]) and 255;
  45.  result[1] := (x[1] + y[1] + (x[0] + y[0]) shr 8) and 255;
  46.  result[2] := (x[2] + y[2] + (x[1] + y[1] + (x[0] + y[0]) shr 8) shr 8) and 255;
  47. end;
  48.  
  49. function umn24(x, y: int24): int24;
  50. begin
  51.  result := IntToInt24(Int24ToInt(x) * Int24ToInt(y));
  52. end;
  53.  
  54. function div24(x, y: int24): int24;
  55. begin
  56.  result := IntToInt24(Int24ToInt(x) div Int24ToInt(y));
  57. end;
  58.  
  59. function mod24(x, y: int24): int24;
  60. begin
  61.  result := IntToInt24(Int24ToInt(x) mod Int24ToInt(y));
  62. end;
Advertisement
Add Comment
Please, Sign In to add comment