关于进制转换,高手请帮忙!(50分)

  • 主题发起人 主题发起人 wishme1
  • 开始时间 开始时间
W

wishme1

Unregistered / Unconfirmed
GUEST, unregistred user!
帮忙写个
二进制---->十进制
十进制--->二进制
二进制--->十六进制
十六进制--->二进制
转换的程序,我现在只有这点分了,能否帮忙?
 
function IntToBin(Value: LongInt;Size: Integer): String;
var
i: Integer;
begin
Result:='';
for i:=Size do
wnto 0 do
begin
if Value and (1 shl i)<>0 then
begin
Result:=Result+'1';
end else
begin
Result:=Result+'0';
end;
end;
end;

function BinToInt(Value: String): LongInt;
var
i,Size: Integer;
begin
Result:=0;
Size:=Length(Value);
for i:=Size do
wnto 0 do
begin
if Copy(Value,i,1)='1' then
begin
Result:=Result+(1 shl i);
end;
end;
end;

HEX -> Integer
var
i : integer
s : string;
begin
s := '$' + ThatHexString;
i := StrToInt(a);
end;

intohex DELPHI自己有!
 
全部给你了:
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 do
wnto 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;
//十六进制字符串转换为二进制字符串
begin
result := OcttoBin(HextoOct(k));
end;

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

Similar threads

回复
0
查看
848
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部