비트 연산(Bitwise Operation)란?

정수를 2진수 비트의 나열로 보고, 비트마다 논리곱(AND), 논리합(OR), 배타적 논리합(XOR), 부정(NOT)을 취하거나 좌우로 미는(시프트) 연산. 특정 비트의 추출이나 설정, 1인 비트의 개수 세기, 2의 거듭제곱에 의한 곱셈·나눗셈 등에 사용한다.

일본어 명칭: ビット演算

비트 연산(Bitwise Operation)은(는) 논리 회로, 프로그래밍의 기초(의사 코드 트레이스), 성능 분석 등 4개 분야의 연습 문제 5개에 나와요.

분야: 프로그래밍의 기초(의사 코드 트레이스)

도전해 보기: 비트 연산(Bitwise Operation) 관련 문제

2입력 AND 게이트의 출력이 1이 되는 것은 언제입니까?

  1. A두 입력이 모두 1일 때
  2. B두 입력이 모두 0일 때
  3. C어느 한쪽 입력이 1일 때
정답과 해설 보기

정답: A. 두 입력이 모두 1일 때

AND 게이트(논리곱)는 모든 입력이 1일 때만 출력이 1이 되고 그 외에는 0입니다. 직렬로 연결한 스위치와 같아서 '두 조건을 모두 만족할 때만 동작하는' 제어에 사용됩니다. 예를 들어 클록과 인에이블의 AND로 필요할 때만 클록을 통과시키는 클록 게이팅이나, 비트 연산에서 특정 비트만 꺼내는 마스크(x AND 0x0F로 하위 4비트)가 대표적인 용도입니다.

2입력 OR 게이트의 출력이 0이 되는 것은 언제입니까?

  1. A두 입력이 다를 때
  2. B두 입력이 모두 0일 때
  3. C두 입력이 모두 1일 때
정답과 해설 보기

정답: B. 두 입력이 모두 0일 때

OR 게이트(논리합)는 적어도 하나의 입력이 1이면 출력이 1이 되고, 0이 되는 것은 모든 입력이 0일 때뿐입니다. 병렬로 연결한 스위치와 같아서 '어느 하나라도 조건을 만족하면 동작하는' 제어에 사용됩니다. 예를 들어 여러 인터럽트 요청을 하나로 모으는 회로나, 비트 연산에서 특정 비트를 1로 만드는 조작(x OR 0x80으로 최상위 비트를 1로)에 사용됩니다.

해설 속 비트 연산(Bitwise Operation)

비트 연산(Bitwise Operation)이(가) 나오는 문제 (5)

  1. 2입력 AND 게이트의 출력이 1이 되는 것은 언제입니까?
  2. 2입력 OR 게이트의 출력이 0이 되는 것은 언제입니까?
  3. ∧는 비트별 논리곱을 나타낸다. 다음 프로그램을 실행한 후의 c의 값은?
  4. 성능 카운터로 분기 예측 실패가 매우 많다는 것을 알았다. 개선 방법에 해당하는 것은?
  5. 암호 처리를 '정시간(constant-time)'으로 구현할 때 지켜야 할 것으로 올바른 것은 무엇입니까?

관련 용어

클록 게이팅(Clock Gating) 인터럽트(Interrupt) 성능 카운터(Performance Counter) 분기 예측(Branch Prediction) 배열(Array) 객체 지향(Object-oriented Programming) 나머지 연산(Modulo Operation) 단락 평가(Short-circuit Evaluation) 반올림 오차(Rounding Error) 반환값(Return Value)

용어집으로 돌아가기