关于delphi函数的调用和传参,求介绍,内容如下所示!

procedure TForm1.RadioButton1Click(Sender: TObject);
{十进制转换成二进制}
var
aInt:integer;
begin
aInt:=StrToInt(Edit2.Text);
Edit2.Text:=IntToBin(aInt);
end;
function IntToBin(const aInt : Integer):string;
var
s:string;
i,j:Integer;
begin

s:='';
Result:='';
i:=aInt;
while i>=2 do
begin
s:=s + IntToStr(i mod 2);
i:=i div 2;
end;
s:=s + IntToStr(i);
s:=s+IntToStr(i);
i:=Length(s);
if i < 4 then
s := s + Copy('000 ',1,4-i);
i:=Length(s);
for j:=i downto 1 do
Result := Result + s[j];
end;
我想从Edit1里输入一个数,然后传参给IntToBin,经过计算,然后返回最终值,由Edit2输出,请问上面的代码该怎修改呢?

森林海
浏览 328回答 2
2回答

尚方宝剑之说

如果你用的是360,那么这段代码会报木马,因为用了shl,可以不用理会整型本身就是一个4字节的2进制数,所以,直接按2进制来处理,不用这么麻烦procedure TForm1.Button1Click(Sender: TObject);var i,n: Integer;beginEdit2.Clear;if not TryStrToInt(Edit1.Text,n) then exit; //赋值给n,如果失败直接退出for i:=1 to sizeof(n)*8 dobeginif (n and $80000000)=0 thenEdit2.Text := Edit2.Text + '0'elseEdit2.Text := Edit2.Text + '1';n := n shl 1; //左移一位end;end;

精慕HU

aInt:=StrToInt(Edit2.Text);改成aInt:=StrToInt(Edit1.Text);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Oracle