提问:一个按钮,两个EDIT,点按钮1时,读取EDIT1 里的八位数转换为16进制并且加3132333435363738
在EIDT2显示出来,,这代码要咋写?

解决方案 »

  1.   

    Edit2.text := Format('%x',[StrToInt64Def(Edit1.text,0) + $3132333435363738]);
      

  2.   


    unsigned,这样处理好像和答案不一样哦。我测试了一下。在运行软件,EDIT1输入12345678 点击按钮时
    EDIT2得出的结果为:3132333435F29886而我用计算机算出来的是 12345678 转16得:3132333435363738+3132333435363738=626466686A6C6E70
      

  3.   

    如果按照你题目的描述,僵哥的做法肯定是对的。你肯定把情况说错了吧。
    "而我用计算机算出来的是 12345678 转16得:3132333435363738"  
    十进制转十六进制肯定不可能转了之后比十进制还长啦。12345678(10)=BC614E(16)所以不知道你想要怎么转
      

  4.   

    var
      str, Str1: String;
      I: Integer;
    begin
      str := Edit1.Text;
      for I := 1 to Length(Str) do begin
        Str[I] := Chr(Ord[I] + I + 48);
      end;
      SetLength(Str1, Length(Str) * 2);
      BinToHex(PChar(Str), PChar(Str1), Length(Str));
      Edit2.Text := Str1;
    end;
      

  5.   

    q我运行的时候 Str[I] := Chr(Ord[I] + I + 48);
    出现错误,,,不知为啥