69,373
社区成员
发帖
与我相关
我的任务
分享
int a,b,c;
...
if (a==b)
{
a=c;
}
else if (a==c)
{
a=b;
}
if(!((a^b)&(a^c)))
{
a ^= b^c;
}
printf("%d",a);
if(!((a^b)&(a^c)))
00412301 mov eax,dword ptr [a]
00412304 xor eax,dword ptr [b]
00412307 mov ecx,dword ptr [a]
0041230A xor ecx,dword ptr [c]
0041230D and eax,ecx
0041230F jne main+5Dh (41231Dh)
{
a ^= b^c;
00412311 mov eax,dword ptr [b]
00412314 xor eax,dword ptr [c]
00412317 xor eax,dword ptr [a]
0041231A mov dword ptr [a],eax
}
if (a==b)
0041231D mov eax,dword ptr [a]
00412320 cmp eax,dword ptr [b]
00412323 jne main+6Dh (41232Dh)
{
a=c;
00412325 mov eax,dword ptr [c]
00412328 mov dword ptr [a],eax
0041232B jmp main+7Bh (41233Bh)
}
else if (a==c)
0041232D mov eax,dword ptr [a]
00412330 cmp eax,dword ptr [c]
00412333 jne main+7Bh (41233Bh)
{
a=b;
00412335 mov eax,dword ptr [b]
00412338 mov dword ptr [a],eax
}
a=((a==b)?c:((a==c)?b:a));