بجاش از این تابع استفاده کن:
function BinaryToHex(BinStr: string): string;
{ABSTRACT : Source = http://www.greatis.com/delphicb/tips/lib/mathematics-bin2hex.html
PURPOSE : Convert a binary number to hex
PARAMETERS : BinStr = binary number
OUTPUT : Hex number as string type
REVISED :
}
const
BinArray: array[0..15, 0..1] of string =
(('0000', '0'), ('0001', '1'), ('0010', '2'), ('0011', '3'),
('0100', '4'), ('0101', '5'), ('0110', '6'), ('0111', '7'),
('1000', '8'), ('1001', '9'), ('1010', 'A'), ('1011', 'B'),
('1100', 'C'), ('1101', 'D'), ('1110', 'E'), ('1111', 'F'));
var
j: Integer;
BinPart: string;
begin
Result:='';
try
for j:=1 to Length(BinStr) do
if not (BinStr[j] in ['0', '1']) then
raise Exception.Create('Invalid binary number');
case Length(BinStr) mod 4 of
1: BinStr:='000'+BinStr;
2: BinStr:='00'+BinStr;
3: BinStr:='0'+BinStr;
end;
while Length(BinStr)>0 do
begin
BinPart:=Copy(BinStr, Length(BinStr)-3, 4);
Delete(BinStr, Length(BinStr)-3, 4);
for j:=1 to 16 do
if BinPart=BinArray[j-1, 0] then
Result:=BinArray[j-1, 1]+Result;
end;
except
Result := '';
end;
end;