字符串转16进制 ( 积分: 30 )

  • 主题发起人 主题发起人 soulhuman
  • 开始时间 开始时间
S

soulhuman

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在得到了一个很长的(128×16个)由0,1组成的字符串
我想把它们每四位一组,转为16进制
比如原来的字符串是:0100101000001101
转换后得到4A0D

请问怎样实现[?]
 
我现在得到了一个很长的(128×16个)由0,1组成的字符串
我想把它们每四位一组,转为16进制
比如原来的字符串是:0100101000001101
转换后得到4A0D

请问怎样实现[?]
 
function StrToHex(AStr: string): string
//字符串TO十六进制
var
I : Integer;
Tmp: string;
begin
Result := '';
for I := 1 to Length(AStr) do
begin
Result := Result + Format('%2x', [Byte(AStr)]);
end;
I := Pos(' ', Result);
While I <> 0 do
begin
Result :='0';
I := Pos(' ', Result);
end;
end;


十六进制 :=StrToHex(0100101000001101)
 
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/
 
to adlyl031
你误会我的意思了
我是说将128个01010101......串,每4个一组转成16进制
 
我用2进制转16进制的函数试过但是结果不正确,是不是由于串过长的原因??
 
function StrToHex(s:string):string;
var
i:integer;
rt:integer;
begin
rt := 0;
for i:= 1 to 16 do
rt := rt+StrToInt(s) shl (16-i);
result := IntToHex(rt,4);
end;
 
adlyl031是在群发广告!dfw都被他刷了一下午了
 
function tform1.strtohex(s:string):string;
var
i:integer;
kk:integer;
begin
result:='';
for i:=1 to length(s) do
if i mod 4 =0 then
begin
result:=result+inttohex(ord(s[i-3])+ord(s[i-2])+ord(s[i-1])+ord(s),2)+':';
end;
end;编译通过
 
Delphi里好像有个二进制的类 是不是用来干这个的啊
叫什么忘了 好像在哪个帖子上看过 TBin???TBinary??
我手上没有Delphi 不好意思
 

Similar threads

回复
0
查看
848
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
825
DelphiTeacher的专栏
D
后退
顶部