如何将16进制转换为2进制(30分)

  • 主题发起人 主题发起人 豆豆猫猫
  • 开始时间 开始时间

豆豆猫猫

Unregistered / Unconfirmed
GUEST, unregistred user!
[red][/red][:(]请问各位如何将16进制转换为2进制啊,麻烦诸位给支个招,小女子这厢有礼了!
 
设HexChar为当前一个16进制的字符转为一串二进制串,那个16进制字符串转二进制就不用说了吧,
Function HToB(a:Char):String;
var DivLeft : integer;
HexChar : Char;
ResultStr : string; //反回的二进制串
begin
HexChar := a; //'E';
//首先将它转化为十进制
if (HexChar >#47) and (HexChar <#58) then
DivLeft:=Ord(HexChar )-48
else if (HexChar >#64) and (HexChar<#71) then
DivLeft:=Ord(HexChar )-65 + 10;
ResultStr :='';
repeat
if odd(DivLeft) then
ResultStr :='1'+ResultStr
else
ResultStr :='0'+ResultStr;
DivLeft:=DivLeft div 2;
until (DivLeft=0) and (length(ResultStr)=4);
result := resultstr;
showmessage(resultstr);//resultstr 就是转化出来的二进制了
end;

至于是一个16进制的字符串,你用一个循环就行了
var Count : integer;
s : string;
Hstr : String; //hstr为一连串的十六进制
begin
Hstr := 'A568DF';
s:='';
for Count:=1 to length(Hstr) do
s:=s+HToB(HexNr[Count]);
showmessage(s);
end;
OK了,你再调试一下,看有什么问题,重点就在于十进制转二进制那部分
 
谢谢两位了!
我的问题解决了!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部