tminmaxconst.pp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. uses
  2. sysutils,math;
  3. var
  4. s: Single;
  5. d: Double;
  6. {$if sizeof(extended) <> sizeof(double)}
  7. e: Extended;
  8. {$endif}
  9. begin
  10. s := MaxSingle;
  11. d := MaxDouble;
  12. Writeln(IntToHex(PLongInt(@s)^, 8));
  13. if IntToHex(PLongInt(@s)^, 8)<>'7F7FFFFF' then
  14. halt(1);
  15. Writeln(IntToHex(PInt64(@d)^, 16));
  16. if IntToHex(PInt64(@d)^, 16)<>'7FEFFFFFFFFFFFFF' then
  17. halt(2);
  18. s := MinSingle;
  19. d := MinDouble;
  20. Writeln(IntToHex(PLongInt(@s)^, 8));
  21. if IntToHex(PLongInt(@s)^, 8)<>'00800000' then
  22. halt(3);
  23. Writeln(IntToHex(PInt64(@d)^, 16));
  24. if IntToHex(PInt64(@d)^, 16)<>'0010000000000000' then
  25. halt(4);
  26. {$if sizeof(extended) <> sizeof(double)}
  27. e := MinExtended;
  28. Writeln(IntToHex(TExtended80Rec(e)._Exp)+IntToHex(TExtended80Rec(e).Frac));
  29. if IntToHex(TExtended80Rec(e)._Exp)+IntToHex(TExtended80Rec(e).Frac)<>'00018000000000000000' then
  30. halt(5);
  31. e := MaxExtended;
  32. Writeln(IntToHex(TExtended80Rec(e)._Exp)+IntToHex(TExtended80Rec(e).Frac));
  33. if IntToHex(TExtended80Rec(e)._Exp)+IntToHex(TExtended80Rec(e).Frac)<>'7FFEFFFFFFFFFFFFFFFF' then
  34. halt(6);
  35. {$endif}
  36. writeln('ok');
  37. end.