麻烦哪位高手告诉我这段程序是什么意思好不好?小弟睡个午觉起来脑子迷迷糊糊的,实在看不懂。
function AtoI(a : char) : integer;
begin
    if a in ['0'..'9'] then Result := byte(a) - byte('0')
    else Result := $a + byte(upcase(a)) - byte('A');
end;
谢谢。

解决方案 »

  1.   

    function AtoI(a : char) : integer;
    begin
        if a in ['0'..'9'] then Result := byte(a) - byte('0')
        {如果字符a在0---9的范围内,则:函数结果=字符a的ASCII码-字符0的ASCII码}
        else Result := $a + byte(upcase(a)) - byte('A');
          {否则:结果=字符a的ASCII码+A的ASCII码-A的ASCII码}
    end;
      

  2.   

    function AtoI(a : char) : integer;
    begin
        if a in ['0'..'9'] then Result := byte(a) - byte('0')
        {如果字符a在0---9的范围内,则:函数结果=字符a的ASCII码-字符0的ASCII码}
        else Result := $a + byte(upcase(a)) - byte('A');
          {否则:结果=字符a的ASCII码+字符a大写的ASCII码-A的ASCII码}
    end;
    求字符a是第几个知母或数字
      

  3.   

    我就是这里犯迷糊
    else Result := $a + byte(upcase(a)) - byte('A');
          {否则:结果=字符a的ASCII码+字符a大写的ASCII码-A的ASCII码}
    字符a大写的ASCII码跟A的ASCII码不是一回事吗?另:
    “求字符a是第几个字母或数字”
    能说更细点是什么意思吗?
      

  4.   


    字符a大写的ASCII码跟A的ASCII码不是一回事吗?of course notshowmessage(inttostr(byte('a')));
    showmessage(inttostr(byte('A')));
      

  5.   

    byte(upcase(a))与这个byte('A')一样啊 他们的ASCII都是65啊?