Delphi中的进制转换

二进制转换

function binToDec(Value: string): integer;
var
str:
string;
i: integer;
begin
Str :
= UpperCase(Value);
result :
= 0;
for i := 1 to Length(str) do
result :
= result * 2 + ORD(str[i]) - 48;
end;

function mod_num(n1, n2: integer): integer; //取余数
begin
result :
= n1 - n1 div n2 * n2
end;

function reverse(s: string): string; //取反串
var
i, num: Integer;
st:
string;
begin
num :
= Length(s);
st :
= '';
for i := num downto 1 do
begin
st :
= st + s[i];
end;
Result :
= st;
end;

function DecTobin(Value: Integer): string; //十进制转化二进制
var
ST:
string;
N: Integer;
begin
ST :
= '';
n :
= value;
while n >= 2 do
begin
st :
= st + IntToStr(mod_num(n, 2));
n :
= n div 2;
end;
st :
= st + IntToStr(n);
Result :
= reverse(st);
end;

16进制转字符

function HexToChar(Str: string): string;
var
i: integer;
buf1:
array[0..100] of byte;
begin
for i := 0 to (length(Str) div 2 - 1) do
begin
buf1[i] :
= strtoint('$' + copy(Str, i * 2 + 1, 2));
Result :
= Result + char(buf1[i]);
end;
end;

function CharToHex(Str: string): string;
var
i: integer;
ch: char;
begin
for i := 1 to (length(str)) do
begin
ch :
= Str[i];
Result :
= Result + inttohex(byte(ch), 2);
end;
end;

16进制转十进制

function hextoint(s: string): Integer;
begin //$代表16进制
Result:
=StrToInt('$'+s);
end;

数据转换成二进制

function conertde(s:string):string;
var //数据都是以二进制的形式保存
i:integer;
begin
for i:=1 to length(s) do
result:
=result+inttohex(ord(s[i]),2);
end;

非原创,收藏供查询。

原文地址:https://www.cnblogs.com/star5/p/1885068.html