var
  Order : byte;
  i : integer;
begin
  i := StrToInt(edit1.Text);
  Order := $10;  
end;
s := byte($10)或s:=$10;可以表示16进制的10,可我要动态的表示呢?就是认为动态传过来的i是16进制数,$i编译过不去,$ + i其实就是i。
到底该怎么表示?

解决方案 »

  1.   

    是这样:
    var
      i:integer;
      strhex:string;
    begin
      strhex:=edit1.text;  
      i:=strtoint('$'+strhex);
      ...
      

  2.   

    动态表示,也就是计算机内部的表示,统一为二进制的,何来其他进制 ^_^
    所谓16进制还是10进制仅仅是字面常量的表现形式而已,到了内部还不都是二进制?
    只是输出时需要转化为人能看得懂的文字,比如表示一个10进制或16进制的数的一串字符
    转化为10进制用再熟悉不过的IntToStr,或者WriteLn之类也有类似功能
    转化为16进制用StrToHex(值,位数),两个参数都是整型,后者表示按16进制输出时至少有几位数字,就是说数值不够指定位数时前面补足'0'.
      

  3.   

    我的意思是eidt1输入一个10,我认为它是16进制的,而不是10进制的,没有区别吗?