[Kotlin] 시프트 연산자

Subeen·2024년 4월 15일
0

Kotlin 문법

목록 보기
23/23

시프트 연산자 종류

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

연산 수식

연산 수식비트 값출력 값
5000001015
5 shr 2000000011
5 shl 20001010020
5 ushr 2000000011

음수의 이진 표현은 보수 표현을 사용한다. 보수 표현은 이진수를 표현할 때 첫 번째 비트가 부호를 나타내는데, 0이면 양수를 의미하고, 1이면 음수를 의미한다.
음수의 이진 표현은 해당 값의 양수 표현의 모든 비트를 반전한 후 1을 더한 것이다.

  • -5를 8비트의 이진수로 표현하는 법
    • 5의 이진 표현을 구한다. 00000101
    • 이를 반전하면 11111010
    • 여기에 1을 더한다. 11111011
연산 수식비트 값출력 값
-511111011251
-5 shr 211111110254
-5 shl 211101100354
-5 ushr 20011111062

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

profile
개발 공부 기록 🌱

0개의 댓글