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.