大家好:
     请问要把十六进制的18,00,A0,14,CA 五个数一起异或怎么用DELPHI写程序啊?????是不是直接(18 xor 00 xor A0 xor 14 xor CA)这样写啊?请高手指导!不过我知道这五个数一起异或最后的数是十六进制66。
     请大家帮忙!

解决方案 »

  1.   

    var
        a1:Byte;
    begin
        a1:=$18 xor $00 xor $a0 xor $14 xor $ca;
        showmessage(format('Result is:%x',[a1]));
    end;
      

  2.   

    老大你好:
         你的答案果然是正确的,我很高兴。我一定给你分的。不过你能不能再给我解释一下,
    为什么要一个字节变量al呢?[al]又是什么意思啊?我想把问题搞清楚,再麻烦老大一下好吗/。??求求你了啊/。!!!
      

  3.   

    需要异或的变量都是字节的,所以定义了一个字节变量。[A1]是 Format 函数的参数,表示需要显示的变量内容。
      

  4.   

    大家好:
       我又遇到了新问题啊!我的程序是这样的请大家多多指导啊!!!
    var
       str:string;
       a,b,c,d,e:string;
    begin
       str:='1800A014CA';
       a:=copy(str,1,2);
       b:=copy(str,3,2);
       c:=copy(str,5,2);
       d:=copy(str,7,2);
       e:=copy(str,9,2);
       if (($a xor $b xor $c xor $d xor $e)=$66) then
         begin
           memo1.Text:='你好';
         end
       else
         begin
           memo1.Text:='我好';
         end;
    end.请问这样怎么不行啊!!????能运行但是达不到预期的效果啊?!?!请问给位老大!给怎么改啊!!!!?????
      因为我的str字符串是一个十六进制的卡号,要经常变的所以要用这种方法!请问那位还有更好的
    方法吗?
      

  5.   

    var
       str:string;
       a,b,c,d,e:BYTE;//改为Byte
    begin
       str:='1800A014CA';
       a:=StrToInt(copy(str,1,2));
       b:=StrToInt(copy(str,3,2));
       c:=StrToInt(copy(str,5,2));
       d:=StrToInt(copy(str,7,2));
       e:=StrToInt(copy(str,9,2));
       if (($a xor $b xor $c xor $d xor $e)=$66) then
         begin
           memo1.Text:='你好';
         end
       else
         begin
           memo1.Text:='我好';
         end;
    end.
      

  6.   

    flyinwuhan(超越) 
       您好:
      我把你给我改的程序运行了一遍,通不过。错误提示是“A0”不是一个有效的数。请您再帮俺改改
    好吗?
      

  7.   

    给你一个函数吧,把上面的StrToInt换成HexToDec2就OK了。
    记得把下面的函数拷贝到你的代码中:-)Function HexToDec2(str:String):Integer;
      function AlphaToNum(c:Char):Integer;
      begin
        case c of
         'a','A':result := 10;
         'b','B':result := 11;
         'c','C':result := 12;
         'd','D':result := 13;
         'e','E':result := 14;
         'f','F':result := 15;
        else
          result := StrToInt(c);
        end;
      end;
    begin
      result := AlphaToNum(str[1]) *16 + AlphaToNum(str[2]);
    end;
      

  8.   

    再提醒一点,把Function HexToDec2(str:String):Integer;这句加入到“implementation”之前,函数体就可以放到“implementation”之后。
      

  9.   

    flyinwuhan(超越) 
       你好!太谢谢你了啊!在你的帮助下我的问题已经解决了啊!在学习方面你是我的前辈。我很想和你多交流交流。你有QQ号或E-Mail吗?我很想多让你指导指导我好吗??求求你了啊!!!
         
        得到你的回答我马上揭贴。(无论接受还是拒绝)