OR연산을 하는 함수입니다.

이것은 간단히 De Morgan's law를 이용하였습니다.

 

 

/*
* bitOr - x|y using only ~ and &
*   Example: bitOr(6, 5) = 7
*   Legal ops: ~ &
*   Max ops: 8
*   Rating: 1
*/
int bitOr(int x, int y) {
    /* (A|B) == ~(~(A|B)) == ~(~A&~B)
     *
     * 20080401
     */
    return ~(~x&~y); // (A'B')' == A + B. It's De Morgan's laws.
}

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1474

댓글을 달아 주세요

[로그인][오픈아이디란?]