阿杰 发表于 2009-7-26 14:53:37

【源码】Delphi进制转换

//十六进制(S)-->>十进制(I) [重写:Jey]
function hextoint(s: string): Integer;
begin //$代表16进制
Result:=StrToInt('$'+s);
end;

//十进制转换为二进制字符串 [重写:Jey]
function inttoBin(i: integer): string;
begin
while i <>0 do
begin //i mod 2取模,再使用format格式化
result:=Format('%d'+result,);
i:=i div 2
end
end;

//二进制(S)-->>十进制(D) [重写:Jey]
uses Math;
function hextoint(s: string): Double;
begin
while Length(s) <>0 do
begin //2^(长度-1)次方
if s='1' then Result:=Result+power(2,Length(s)-1);
s:=Copy(s,2,Length(s));
end
end;
//十进制(I)-->>十六进制(S)
//D自带函数,Digits长度,一般设4.
function IntToHex(Value: Integer; Digits: Integer): string;

//数据(S)-->>二进制(S)
//任何数据都是以二进制形式存储的! (转)
function conertde(s:string):string;
var
i:integer;
begin
for i:=1 to length(s) do
result:=result+inttohex(ord(s),2);
end;

阿杰 发表于 2009-7-26 15:07:06

function OcttoBin(i: integer): string; //十进制转换为二进制字符串
var
j: integer;
s: string;
begin
j := i;
s := ' ';
while j >= 2 do
begin
if (j mod 2) = 1 then
begin
s := '1' + s;
j := j div 2;
end
else
begin
s := '0' + s;
j := j div 2;
end;
end;
s := chr(ord('0') + j) + s;
result := s;
end;

function BintoOct(k: string): integer; //二进制字符串转换为十进制
var
i, j, t: integer;
s: char;
begin
t := 1;
j := length(k);
j := 0 + (ord(k) - ord('0')) * t;
;
for i := length(k) - 1 downto 1 do
begin
s := k;
t := t * 2;
j := j + ((ord(s) - ord('0')) * t);
end;
result := j;
end;

function OcttoHex(i: integer): string; //十进制转换为四位的十六进制字符串
begin
result := InttoHex(i, 4);
end;

function HextoOct(k: string): integer; //十六进制字符串转换为十进制数
begin
result := StrtoInt('$' + k);
end;

function HextoBin(k: string): string;&nbsp;//十六进制字符串转换为二进制字符串
begin
result := OcttoBin(HextoOct(k));
end;

function BintoHex(k: string): string;&nbsp;//二进制字符串转换为四位的十六进制字符串
begin
result := Octtohex(BintoOct(k));
end;

wofan 发表于 2011-4-8 07:41:58

管理员同志,你的贴子没有整理,好难看懂哟。

阿杰 发表于 2011-4-28 20:58:15

已修复

upring 发表于 2015-4-13 09:25:55

很好 代码要是着色就更好了
页: [1]
查看完整版本: 【源码】Delphi进制转换