if (byte(m_buf[i]) < $40) then
        temp:= byte(m_buf[i])-$30
      else
        temp:= byte(m_buf[i])-$37;
      id:=id*16+temp;
没有学过delphi,看别人的代码里面的一点东西。
要将别人的代码转过来在evc下用。
实在看不懂。。
请大家帮忙。。
这是涉及ascii吗和十六进制的转换。

解决方案 »

  1.   

    今天有空,与你闲聊一下。:)。if (byte(m_buf[i]) < $40) then//---如果缓冲区的第i个字节的值小于64时。($40就是0x40H,也就是:4*16+0*1=64)
            temp:= byte(m_buf[i])-$30//--把这个字节的值减去48后给临时变量
          else
            temp:= byte(m_buf[i])-$37;//--如果这个字节的值大于64,则减去55后再给临时变量
          id:=id*16+temp;//---换算成另一个值后给ID。
    呵~~,这个有点像一种加密算法。或是BCD码转换成HEX码用的算法吧。
      

  2.   

    temp:= byte(m_buf[i])-$37;//--如果这个字节的值不小于64,则减去55后再给临时变量
    发快了点,更正下。