Pour un besoin de contrôle, j'ai eu besoin de visualiser avec un bête ShowMessage une valeur en sa représentation binaire, j'ai trouvé 2 routines qui me donne le même résultat mais , je me demande si on ne pourrais ps faire plus concis.

Version 1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function TForm1.WordToBin(AValue: Word): string;
var
  i: Integer;
  pStr: PChar;
begin
  SetLength(Result, 16);
 
  pStr := PChar(Pointer(Result));
 
  for i := 15 downto 0 do
    pStr[i] := Char(Ord('0') + ((AValue shr (15 - i)) and 1));
end;
Version 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
function TForm1.WordToBinString(AValue: Word): string;
var
  i: integer;
begin
  Result := '';
 
  for i := 1 to 16 do
    Result := IntToStr(((AValue shr (i - 1)) and ((1 shl 1) - 1)) ) + Result;
end;
Une idée, ou une suggestion ?