Float2hex

Contenu du snippet

Permet de convertir un nombre réel en sa représentation hexadécimal et vice versa. L'application utilise le référencement et les pointeurs sous Delphi.

Source / Exemple :


unit fFloatToHex;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TfrmFloatToHex = class(TForm)
    txtFloat: TEdit;
    Label1: TLabel;
    txtHex: TEdit;
    Label2: TLabel;
    btnFloatToHex: TButton;
    btnHexToFloat: TButton;
    procedure btnFloatToHexClick(Sender: TObject);
    procedure btnHexToFloatClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmFloatToHex: TfrmFloatToHex;

implementation

{$R *.DFM}

{ Récupération de la valeur en hexadécimal.  En utilisant un
  pointeur de DWord, on pointe alors sur l'adresse d'une
  variable de type Single et ainsi, on a la représentation
  en hexadécimal d'un float. }
procedure TfrmFloatToHex.btnFloatToHexClick(Sender: TObject);
var
  sglTmp : Single;
  pdwTmp : PDWord;
begin
  try
    sglTmp := StrToFloat( txtFloat.Text );
    pdwTmp := @sglTmp;
    txtHex.Text := IntToHex( pdwTmp^, 8 );
  except
    ShowMessage( 'Valeur réelle inutilisable.' );
  end;
end;

{ Récupération de la valeur en float.  En utilisant un
  pointeur de Single, on pointe alors sur l'adresse d'une
  variable de type DWord et ainsi, on récupère la valeur en
  float. }
procedure TfrmFloatToHex.btnHexToFloatClick(Sender: TObject);
var
  dwTmp  : DWord;
  psgTmp : PSingle;
begin
  try
    dwTmp  := StrToInt( '$' + txtHex.Text );
    psgTmp := @dwTmp;
    txtFloat.Text := FloatToStr( psgTmp^ );
  except
    ShowMessage( 'Représentation hexadécimale inutilisable.' );
  end;
end;

end.

Conclusion :


Vous devez vous créer une form avec deux boutons et deux boîtes de texte. Les commentaires sont appréciés!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (garnotte)