Q&A

  • C소스를 델파이로 변환 하는데...
unsigned int SEED_KEY;
  unsigned int KEY = 0x0000;
  unsigned int seedMask = 1980;
  unsigned char SEED_Parameter = 0x02;
  unsigned char operations;
  
  SEED_KEY = 39926;
  operations = 37;
  KEY = seedMask;

    for( i=0; i<operations; i++)
    {
      if( KEY && 0x8000 )
      {
        KEY <<= 1;
  KEY ^= SEED_KEY;
      }
      else
KEY <<= 1;
    }

    SEED_KEY = KEY;

    printf("\nOUTPUT NO : %05u", SEED_KEY);
    getch();

위 소스를 아래와 같이 변환했는데요... 결과가 다르게 나오네요..

for i:=0 to operation do
begin
   if (v_KEY and $8000)=1 then
   begin
     v_KEY:= v_KEY shl 1;
     v_KEY:= v_KEY or v_seed;
   end
   else
     v_KEY:= v_KEY shl 1;

   showmessage(inttostr(v_key));
end;

v_seed := v_KEY;

제가 실수한게 있는지요? 아시는분 답변 부탁 드립니다
2  COMMENTS
  • Profile
    최용일 2005.04.08 21:20
    안녕하세요. 최용일입니다.

    $8000과 and연산해서 1이 나올 경우는 전무하죠...

    <!--CodeS-->
    for i:=0 to operation - 1 do // <<
    begin
        if (v_KEY and $8000) <> 0 then // <<
            ......
    end;
    <!--CodeE-->

    ^^ 항상 즐코하세요...

  • Profile
    최길남 2005.04.08 23:06
    답변 고맙습니다..^_^