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;
제가 실수한게 있는지요? 아시는분 답변 부탁 드립니다
$8000과 and연산해서 1이 나올 경우는 전무하죠...
<!--CodeS-->
for i:=0 to operation - 1 do // <<
begin
if (v_KEY and $8000) <> 0 then // <<
......
end;
<!--CodeE-->
^^ 항상 즐코하세요...