정수를 2로 나눌 때 어느게 더 좋은 방법인가요?


밑에 두 방법 중에 어떤게 더 좋은 방법인가요? 이유도 같이 적어주세요

소스코드

int x = 3;
x = x >> 1;
x = x / 2;
  • 2016년 01월 05일에 작성됨

조회수 224


1 답변


좋아요
0
싫어요
채택취소하기

어떤 일을 하는지에 따라 다르게 쓰세요

변수를 연속된 bit처럼 다루고 있다면 bitshift를 쓰고 숫자처럼 다루고 있다면 /를 쓰는 방법이 좋습니다

다만, 두 방법이 완전히 똑같지는 않기 때문에 조심해서 쓰셔야 합니다. 예를 들어 -5/2 == -2 -5>>1 == -3 인 것 처럼요.

원리적으로는 bitshift를 쓰는 것이 나누기보다 빠릅니다만 가독성이 더 중요하니까요.

그리고 일부 컴파일러는 division을 bitshift로 바꿔주기도 합니다.

  • 2016년 01월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close