프로그래밍

조건문 없이 최대(최소)값 결정하기

문달78 2012. 10. 25. 21:12

 두 정수 값이 있을 때 최소값을 결정하기 위한 일반적인 방법은 아래와 같다.


if(x > y) min = y;

else min = x;


 그러나 이것은 조건문 없이 구현이 가능하다.


min = x ^ ( (x^y) & -(x > y))


 위 수식에서 x가 y보다 크면 min = y 가 되고, 작거나 같으면 min = x가 된다!!

 수식에는 x > y라는 조건문이 있으나 이것은 전체 수식에서 연산의 일부가 되면서 predictable branch가 되어 pipeline이 깨지지 않고 처리할 수 있다.


* MIT OCW 'Performance Engineering of Software Systems' 두번째 강의를 듣고 정리함.



'프로그래밍' 카테고리의 다른 글

AVR RS-232 flash burning software  (0) 2012.11.13
De Brujin sequence(카드 맞추기 마술!!)  (0) 2012.10.29
Amdahl's law  (0) 2012.10.25
소프트웨어 테스팅 vs. 정형 검증  (0) 2012.10.06
부트로더는 왜 필요한가?  (0) 2012.07.19