请问delphi中有没有将二进制转换成十六进制的函数?

yikeshu_888 2007-11-20 11:07:15
如二进制串:0111 1111
我想转换成十六进制的:7F
delphi中有没有这样的函数,谢谢.
...全文
347 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yikeshu_888 2007-11-21
  • 打赏
  • 举报
回复
jialiguo:
你好,是我搞错了,我在字符串后面多加了一个空格符所致.
你的函数很好.

谢谢大家.
yikeshu_888 2007-11-20
  • 打赏
  • 举报
回复
我用如下代码还是不行呀.

procedure TForm1.Button7Click(Sender: TObject);
var s1,s2:pchar;
begin
s1:='01111111';
bintohex(s1,s2,8);
showmessage(s2);
end;

我就是想显示出结果7F

再帮改一下呀,谢谢.
lqiiqqqq 2007-11-20
  • 打赏
  • 举报
回复
procedure BinToHex(Buffer, Text: PChar; BufSize: Integer);

buffer里面是你要转换的2进制串
Text里面是转换出来的串
BufSize是buffer的长度

你必须先定义buffer和Text(PChar型的)
yikeshu_888 2007-11-20
  • 打赏
  • 举报
回复
我这样试了一下不行呀.

procedure TForm1.Button7Click(Sender: TObject);
var s1,s2:string;
begin
s1:='01111111';
s2:=bintohex(s1);
showmessage(s2);
end;

请问这个函数应如何用,上述代码应如何改呀?

非常感谢.
sdzeng 2007-11-20
  • 打赏
  • 举报
回复
BinToHex
johnmack 2007-11-20
  • 打赏
  • 举报
回复
procedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
sy_100000 2007-11-20
  • 打赏
  • 举报
回复
function BinStrToHexStr(const BinStr :string;Digits :Integer) :string;
var i,Len :Integer;
DResult :Integer;
begin
DResult :=0;
Len :=Length(BinStr);
for i :=Len downto 1 do
Inc(DResult,StrToInt(BinStr[i]) shl (Len-i));
Result :=IntToHex(DResult,Digits);
end;
jialiguo 2007-11-20
  • 打赏
  • 举报
回复
我写了怎么是7F
yikeshu_888 2007-11-20
  • 打赏
  • 举报
回复
jialiguo:
你好,请的函数算出来的结果是:FE呀,
应该是7F才对啊.
jialiguo 2007-11-20
  • 打赏
  • 举报
回复
s1 := '01111111';
ShowMessage(BinToHex(s1));
function TForm1.BinToHex(Bin: String): String;
var
i : integer;
tmp : integer;
iLen : integer;
begin
tmp := 0;
//Bin := ReverseString(Bin);
iLen := Length(Bin);
for i := 1 to iLen do begin
tmp := tmp + Min(StrToIntDef(Bin[i],0),1) shl (iLen - i);
end;
Result := Format('%.2X',[tmp]);


end;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧