找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7355|回复: 4

[开源] 【源码】Delphi进制转换

  [复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-7-26 14:53:37 | 显示全部楼层 |阅读模式
//十六进制(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 mod 2]);
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]='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;

【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 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[j]) - 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;
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

0

主题

29

回帖

0

精华

铜牌会员

积分
112
发表于 2011-4-8 07:41:58 | 显示全部楼层
管理员同志,你的贴子没有整理,好难看懂哟。

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2011-4-28 20:58:15 | 显示全部楼层
已修复
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-4-13 09:25:55 | 显示全部楼层
很好 代码要是着色就更好了
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表