형 변환과 shift 연산
이번 Posting에서는 형 변환과 shift 연산에 대하여 정리를 할 것이다.
형 변환은 평소에도 많이들 해봤을 것이고 또 많이 하고 있을 것이다. 하지만 java에서는 개발자의 편의를 위해 쉽게 할 수 있도록 구현해 놓았다.
자동 형 변환이 그 예이다. JVM단에서 형 변환을 통해서 손실이 없다고 판단되는 경우 알아서 형 변환을 해준다. byte -> short -> int -> long -> float -> double
char와 short는 크기는 갖지만 범위가 다르기 때문에 형 변환을 할 때 손실이 발생할 경우가 있다. 서로간의 형 변환은 자동적으로 이루어지지 않는다.
연산에 대해서는 많이들 잘 알고 있기 때문에 shift 연산에 대해서만 정리를 하도록 하겠다.
알고리즘을 짜거나 어떤 코딩을 할 때 나누기 연산이나 곱셈을 많이 사용한다.
특히 2^n 형태의 곱셈이나 나눗셈을 하는 경우가 많은데 이 경우 연산의 비용을 낮추기 위해 사용되는 것이 shift 연산이다.
사실상 알고리즘을 짜다보면 직관적으로 곱하기나 나누기를 하는 경우가 많은데 shift 연산을 이용하면 좋을 것이라고 생각한다.
형 변환은 평소에도 많이들 해봤을 것이고 또 많이 하고 있을 것이다. 하지만 java에서는 개발자의 편의를 위해 쉽게 할 수 있도록 구현해 놓았다.
자동 형 변환이 그 예이다. JVM단에서 형 변환을 통해서 손실이 없다고 판단되는 경우 알아서 형 변환을 해준다. byte -> short -> int -> long -> float -> double
char와 short는 크기는 갖지만 범위가 다르기 때문에 형 변환을 할 때 손실이 발생할 경우가 있다. 서로간의 형 변환은 자동적으로 이루어지지 않는다.
연산에 대해서는 많이들 잘 알고 있기 때문에 shift 연산에 대해서만 정리를 하도록 하겠다.
알고리즘을 짜거나 어떤 코딩을 할 때 나누기 연산이나 곱셈을 많이 사용한다.
특히 2^n 형태의 곱셈이나 나눗셈을 하는 경우가 많은데 이 경우 연산의 비용을 낮추기 위해 사용되는 것이 shift 연산이다.
사실상 알고리즘을 짜다보면 직관적으로 곱하기나 나누기를 하는 경우가 많은데 shift 연산을 이용하면 좋을 것이라고 생각한다.