X && Y => a=1, b=2;
X && not Y => a=2, b=1;
not X && Y => a=2, b=1;
not X && not Y => a=1, b=2;
XOR 닮은 거지 같은 진리표가 탄생...
if 문으로 하니까
if (X)
{
if(Y)
{
a=1, b=2;
}
else
{
a=2, b=1;
}
}
else
{
if(Y)
{
a=2, b=1;
}
else
{
a=1, b=2;
}
}
아 더럽다... 뭔가 좀 깔끔하게 할 수 있는 방법 없을까....
a=1, b=2 / a=2, b=1 을 state로 가지는 변수를 가지고 mapping 하면 댈듯?
아 그래도 조까튼가
(X && Y) || (!X && !Y) ?
a =( X XOR Y ? 2 : 1), b =(X XOR Y ? 1:2)
(X || Y) && !(X && Y) ?
짜증나서 삼항 연산자 두 번 써서 스파게티를 만들고 봉인 ㅋ
논리 xor이 C에 없었던가 아마
컴파일러가 해결해주겠지
a=(X)?(Y?1:2):(Y?2:1); b=(X)?(Y?2:1):(Y?1:2); 이따우로 ㅋ
으악!
bit-wise xor은 있지만 logical xor가 없어서 풀어쓰면 더 스파게티 ㄱㅅㄱㅅ
어차피 나만 보는 코드지만 리펙토링할 때 한참을 생각하게 하는 코드가 될 듯요.
둘 다 안좋아보이네
답이 없DA
저걸 만족하는 F:(x,y)->(f(x,y), g(x,y))를 만들면 안될까요 ㅋ
if( (bool)(X) == (bool)(Y) ) { a = 1; b = 2; } else { a = 2; b = 1; } 이럼 안됨??
bool 형변환이 지저분해보이면 if( (!!X) == (!!Y) ) ㅋㅋ 이게 더 지저분해보이나
논리 XOR 함수를 만들면 되잖아. 뭐가 문제라고..
본인이 답을 적어놓고 물어보네...
카르노맵 최적화를 하든지...