PDA

View Full Version : درباره تبدیل هگز کاراکتر باینری



mehdi_naghous
پنج شنبه 14 مرداد 1389, 22:36 عصر
سلام
میخواهم تابعی بنویسم که هگز را به باینری یا بلعکس و خروجی را توی memo نشان بدم
کسی میتونه کمکم کنه
تشکر

Felony
پنج شنبه 14 مرداد 1389, 22:56 عصر
function BinToHex(BinStr: string): string;
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
Error: Boolean;
j: Integer;
BinPart: string;
begin
Result:='';

Error:=False;
for j:=1 to Length(BinStr) do
if not (BinStr[j] in ['0', '1']) then
begin
Error:=True;
ShowMessage('This is not binary number');
Break;
end;

if not Error then
begin
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;
end;
end;

function HexToBin(Hexadecimal: string): string;
const
BCD: array [0..15] of string =
('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
'1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
var
i: integer;
begin
for i := Length(Hexadecimal) downto 1 do
Result := BCD[StrToInt('$' + Hexadecimal[i])] + Result;
end;

mehdi_naghous
شنبه 16 مرداد 1389, 00:26 صبح
میشه یه تابع اسکی به هگز هم بگذارید