System.TDoubleRec
Delphi
TDoubleRec = packed record
private
aDouble: Double;
function InternalGetBytes(Index: Cardinal): UInt8; inline;
function InternalGetWords(Index: Cardinal): UInt16; inline;
procedure InternalSetBytes(Index: Cardinal; const Value: UInt8); inline;
procedure InternalSetWords(Index: Cardinal; const Value: UInt16); inline;
function GetBytes(Index: Cardinal): UInt8; inline;
function GetWords(Index: Cardinal): UInt16; inline;
procedure SetBytes(Index: Cardinal; const Value: UInt8); inline;
procedure SetWords(Index: Cardinal; const Value: UInt16); inline;
function GetExp: UInt64; inline;
function GetFrac: UInt64; inline;
function GetSign: Boolean; inline;
procedure SetExp(NewExp: UInt64);
procedure SetFrac(NewFrac: UInt64);
procedure SetSign(NewSign: Boolean);
public
function Exponent: Integer;
function Fraction: Extended;
function Mantissa: UInt64;
property Sign: Boolean read GetSign write SetSign;
property Exp: UInt64 read GetExp write SetExp;
property Frac: UInt64 read GetFrac write SetFrac;
function SpecialType: TFloatSpecial;
procedure BuildUp(const SignFlag: Boolean; const Mantissa: UInt64; const Exponent: Integer);
class operator Explicit(a: Extended): TDoubleRec; inline;
class operator Explicit(a: TDoubleRec): Extended; inline;
property Bytes[Index: Cardinal]: UInt8 read GetBytes write SetBytes; // 0..7
property Words[Index: Cardinal]: UInt16 read GetWords write SetWords; // 0..3
end deprecated 'Use TDoubleHelper';
C++
struct DECLSPEC_DRECORD TDoubleRec _DEPRECATED_ATTRIBUTE1("Use TDoubleHelper")
{
private:
double aDouble;
Byte __fastcall InternalGetBytes(unsigned Index);
Word __fastcall InternalGetWords(unsigned Index);
void __fastcall InternalSetBytes(unsigned Index, const Byte Value);
void __fastcall InternalSetWords(unsigned Index, const Word Value);
Byte __fastcall GetBytes(unsigned Index);
Word __fastcall GetWords(unsigned Index);
void __fastcall SetBytes(unsigned Index, const Byte Value);
void __fastcall SetWords(unsigned Index, const Word Value);
unsigned __int64 __fastcall GetExp(void);
unsigned __int64 __fastcall GetFrac(void);
bool __fastcall GetSign(void);
void __fastcall SetExp(unsigned __int64 NewExp);
void __fastcall SetFrac(unsigned __int64 NewFrac);
void __fastcall SetSign(bool NewSign);
public:
int __fastcall Exponent(void);
Extended __fastcall Fraction(void);
unsigned __int64 __fastcall Mantissa(void);
__property bool Sign = {read=GetSign, write=SetSign};
__property unsigned __int64 Exp = {read=GetExp, write=SetExp};
__property unsigned __int64 Frac = {read=GetFrac, write=SetFrac};
TFloatSpecial __fastcall SpecialType(void);
void __fastcall BuildUp(const bool SignFlag, const unsigned __int64 Mantissa, const int Exponent);
static TDoubleRec __fastcall _op_Explicit(Extended a);
__property Byte Bytes[unsigned Index] = {read=GetBytes, write=SetBytes};
__property Word Words[unsigned Index] = {read=GetWords, write=SetWords};
};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
record struct |
public | System.pas System.hpp |
System | System |
説明
警告: TDoubleRec は非推奨になっています。 SysUtils.TDoubleHelper を使用してください。
倍精度浮動小数点値を操作するためのサポートを提供します。
TDoubleRec は、倍精度浮動小数点値に対して低レベル操作を実行するのに使用できます。たとえば、符号、指数、仮数を個別に変更できます。
メモ:
- 倍精度浮動小数点データ型を操作する場合は、TDoubleHelper を使用することをお勧めします。ただし、TDoubleRec が使用されなくなったわけではないので、TDoubleRec を使用して倍精度浮動小数点データを割り当てることはできます。