把16进制字符串转字符串怎么写算法?

quickboy19821982 2012-01-08 09:17:21
具体的效果是,收到字符串0x00 0x01转换成字符串'0001'
算法怎么写?
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
erhan 2012-01-08
  • 打赏
  • 举报
回复
哦,是这个意思吧
mbuf[0] := 0;
mbuf[1] := 1;

mstr := '';
mstr := mstr + RightBStr(IntToStr(mbuf[0]+100),2);
mstr := mstr + RightBStr(IntToStr(mbuf[1]+100),2);

“字符串”这玩意,不能代表全部
erhan 2012-01-08
  • 打赏
  • 举报
回复
贴个代码出来,看看你到底想干的是什么,真不好理解。
quickboy19821982 2012-01-08
  • 打赏
  • 举报
回复
我自己已经解决。。。就一句话。。。你还是没有理解我的意思
erhan 2012-01-08
  • 打赏
  • 举报
回复

procedure TForm1.Button2Click(Sender: TObject);
var
mbuf: array of byte;
mstr: string;
i: integer;

begin
mstr := '0x00 0x01';
mstr := StringReplace(mstr,'0x','',[rfReplaceAll]);
mstr := StringReplace(mstr,' ','',[rfReplaceAll]);
SetLength(mbuf,Length(mstr) div 2);
HexToBin(pchar(mstr),pchar(mbuf),Length(mstr) div 2);
for i:=0 to (Length(mstr) div 2)-1 do
showmessage(IntToStr(mbuf[i]));
end;
erhan 2012-01-08
  • 打赏
  • 举报
回复
var mbuf: array of byte;
mstr: string;
i: integer;

mstr := '0x00 0x01';
mstr := StringReplace('0x','',[rfReplaceAll]);
mstr := StringReplace(' ','',[rfReplaceAll]);
SetLength(mbuf,Length(mstr) div 2);
i:=0;
while mstr<>'' do
begin
mbuf[i] := StrToInt('$'+LeftBStr(mstr,2));
Delete(mstr,1,2);
Inc(i);
end;
quickboy19821982 2012-01-08
  • 打赏
  • 举报
回复
我的意思是十六进制的0x00 0x01,内存里看到的是 $0 $1这样的
erhan 2012-01-08
  • 打赏
  • 举报
回复
mstr := '0x00 0x01';
mstr := StringReplace(mstr,'0x','',[rfReplaceAll]);
mstr := StringReplace(mstr,' ','',[rfReplaceAll]);
erhan 2012-01-08
  • 打赏
  • 举报
回复
uses StrUtils;
erhan 2012-01-08
  • 打赏
  • 举报
回复
mstr := '0x00 0x01';
mstr := StringReplace('0x','',[rfReplaceAll]);
mstr := StringReplace(' ','',[rfReplaceAll]);

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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