[蔡鸟提问题]请教各位大侠关于十六进制加法的问题!

clackey 2006-10-30 02:34:18
大家好!我对编程不是很熟,现在想实现以下功能,却不知如何做起!请高手指教!
从一个edit中提取一个数字假设为0098ea然后通过一个按钮,每点击一次就在edit中自动增加1
既click以后edit框中增加为0098eb,以此类推!
刚刚接触编程,基础甚弱,希望前辈们不吝赐教!
小弟在此万分感谢了!
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerbmw 2006-11-02
  • 打赏
  • 举报
回复
先strtoint,把字符串转换成integer型,然后+1
再strtohex转换成16进制数,
strtohex代码如下:
function TForm1.strtohex(str: string): DWORD;
var
i,j,m : integer;
temp,k : DWORD;
begin
i:=length(str);
j:=1;k:=0;
while(j<i+1) do
begin
case str[j] of
'0'..'9':
begin
temp:=1;
for m:=1 to (i-j) do temp:=16*temp;
temp:=temp*DWORD(strtoint(str[j]));
k:=k+temp;
end;
'A'..'F':
begin
temp:=1;
for m:=1 to (i-j) do temp:=16*temp;
temp:=temp*DWORD(ord(str[j])-ord('A')+10);
k:=k+temp;
end;
'a'..'f':
begin
temp:=1;
for m:=1 to (i-j) do temp:=16*temp;
temp:=temp*DWORD(ord(str[j])-ord('a')+10);
k:=k+temp;
end;
else
begin
result:=0;
exit;
end;
end;
inc(j);
end;
result:=k;
end;
idealguy 2006-11-01
  • 打赏
  • 举报
回复
I:=strToInt(S) 把字符串S按照16进制的理解转变成整形,存入I.
H=int2hex(I) 把整数I转变成16进制表示的字符串,存入H。

没有StrToHex函数
clackey 2006-10-30
  • 打赏
  • 举报
回复
var
a,b,c,d,f:integer;
uap,nap,lap,addr:string ;
begin

a:=strTohex(edit1.text);
b:=strTohex(edit2.Text);
c:=strTohex(edit3.text);
//uap:=int2hex(strTohex(edit1.text));
//nap:=int2hex(strtohex(edit2.Text));
//lap:=int2hex(strtohex(edit3.text));
//uap:=int2hex(a);
//nap:=int2hex(b);
//lap:=int2hex(c);
//d:=strTohex(lap);


//f:=strtohex(lap) + $1;
//addr:=int2hex(f);
//edit4.text:=int2hex(strTohex(lap));

//lap:=intTohex(lap,6);
//edit3.Text :=intTostr(f);

没引掉的是取值部分,其余的都是没实现的 希望能够对解答有所帮助!
小弟在此感谢各位高手了!
clackey 2006-10-30
  • 打赏
  • 举报
回复
谢谢指教!主要是加法那一部分,我的程序算出来总是在第二次点击的时候给文本框负值为二进制的数!
希望能够具体解答以下!谢谢合作!
天涯倦客 2006-10-30
  • 打赏
  • 举报
回复
参考 strtoint inttohex

16,749

社区成员

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

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