Kotlin - 시프트 연산자 종류, 비트연산의 특징

CODEDRAGON Development/Kotlin

반응형

 

 

 

Kotlin - 시프트 연산자 종류

 

Kotlin Java 의미
shr
.shr(bits)
>>  ·         Right shift 연산
·         왼쪽 시프트 연산자
·         bit값을 오른쪽으로 이동.
·         부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킵니다.
·         이동으로 인한 빈자리는 부호값으로 채움(음수인 경우 1, 양수인 경우 0)
 
n shr 2;
shl
.shl(bits)
<<  ·         Left shift 연산
·         오른쪽 시프트 연산자
·         bit값을 왼쪽으로 이동.
·         지정한 수만큼 비트를 전부 왼쪽으로 이동시킵니다.
·         이동으로 인한 빈자리는 0으로 채움.
 
n shl 2;
ushr
.ushr(bits)
>>>  ·         bit값을 오른쪽으로 이동
·         지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0 됩니다.
·         이동으로 인한 빈자리는 0으로 채웁니다.(부호에 관계없이 왼쪽에 항상 0 채워집니다)
 
n ushr 2;

 

 

https://kotlinlang.org/docs/reference/basic-types.html#operations

 

 

 

연산 수식 비트 출력
5 0 0 0 0 0 1 0 1 5
5 shr 2 0 0 0 0 0 0 0 1 1
5 shl 2 0 0 0 1 0 1 0 0 20
5 ushr 2 0 0 0 0 0 0 0 1 1

 

연산 수식 비트 출력
-5 1 1 1 1 1 0 1 1 251
-5 shr 2 1 1 1 1 1 1 1 0 254
-5 shl 2 1 1 1 0 1 1 0 0 354
-5 ushr 2 0 0 1 1 1 1 1 0 62

 

 

  

 

비트연산의 특징

·         왼쪽으로의 비트 이동(<<) 2 배수의 같습니다.

·         오른쪽으로의 비트 이동(>>) 2 배수의 나눗셈 결과와 같습니다.