형 변환과 shift 연산

 이번 Posting에서는 형 변환과 shift 연산에 대하여 정리를 할 것이다.

형 변환은 평소에도 많이들 해봤을 것이고 또 많이 하고 있을 것이다.  하지만 java에서는 개발자의 편의를 위해 쉽게 할 수 있도록 구현해 놓았다.

 자동 형 변환이 그 예이다. JVM단에서 형 변환을 통해서 손실이 없다고 판단되는 경우 알아서 형 변환을 해준다. byte -> short -> int -> long -> float -> double
char와 short는 크기는 갖지만 범위가 다르기 때문에 형 변환을 할 때 손실이 발생할 경우가 있다. 서로간의 형 변환은 자동적으로 이루어지지 않는다.


 연산에 대해서는 많이들 잘 알고 있기 때문에 shift 연산에 대해서만 정리를 하도록 하겠다.
알고리즘을 짜거나 어떤 코딩을 할 때 나누기 연산이나 곱셈을 많이 사용한다.
특히 2^n 형태의 곱셈이나 나눗셈을 하는 경우가 많은데 이 경우 연산의 비용을 낮추기 위해 사용되는 것이 shift 연산이다.

 사실상 알고리즘을 짜다보면 직관적으로 곱하기나 나누기를 하는 경우가 많은데 shift 연산을 이용하면 좋을 것이라고 생각한다.

이 블로그의 인기 게시물

웹툰 무료로 볼 수 있는 사이트

BackJoon 1011, Fly me to the alpha centauri, 규칙 찾기 문제

BaekJoon 6591, 이항 쇼다운 조합문제