function BinStrToHexStr(const BinStr :string;Digits :Integer) :string;
var i,Len :Integer;
DResult :Integer;
begin
DResult :=0;
Len :=Length(BinStr);
for i :=Len downto 1 do
Inc(DResult,StrToInt(BinStr[i]) shl (Len-i));
Result :=IntToHex(DResult,Digits);
end;
s1 := '01111111';
ShowMessage(BinToHex(s1));
function TForm1.BinToHex(Bin: String): String;
var
i : integer;
tmp : integer;
iLen : integer;
begin
tmp := 0;
//Bin := ReverseString(Bin);
iLen := Length(Bin);
for i := 1 to iLen do begin
tmp := tmp + Min(StrToIntDef(Bin[i],0),1) shl (iLen - i);
end;
Result := Format('%.2X',[tmp]);