Swift

Swift - 2. 연산자와 표현식

iosos 2023. 12. 24. 19:12

범위 연산자

  • 5…8 : 5,6,7,8
  • 5..<8 : 5,6,7
  • 2… : 문자열의 길이와 상관 없이 문자열의 세 번째 문자(인덱스 2)부터 시작해서 마지막 문자까지의 문자들을 지정하는 범위
  • …6 : 첫 번째 위치의 문자부터 일곱 번째 문자(인덱스 6)까지의 범위

 

비트 연산자

  • 10진수 171을 2진수로 표현 : 10101011
  • 10진수 3을 2진수로 표현 : 00000011

 

NOT 비트 연산

  • 틸드(~) 문자로 표현되며 숫자의 모든 비트를 반대로 만듬
  • 최상위 비트는 음수인 정수를 표현하는 데 사용됨 
    • 00000011 NOT → 11111100
let y = 3   // 00000011
let z = ~y
print(z)    // -4

 

 

AND 비트 연산

  • 엠퍼센트(&) 문자로 표현되며, 두 개의 숫자를 비트 단위로 비교
  • 10101011 AND 00000011 → 00000011
let x = 171
let y = 3
let z = x & y
print(z)    // 3

 

 

OR 비트 연산

  • 10101011 OR 00000011 → 10101011
let x = 171
let y = 3
let z = x | y
print(z)    // 171

 

 

XOR 비트 연산

  • 두 개의 비트 중 하나만 1일 경우 1이 됨, 캐럿(^)으로 표현
  • 10101011 XOR 00000011 → 10101000
let x = 171
let y = 3
let z = x ^ y
print(z)    // 168

 

 

왼쪽 시프트 비트 연산

  • 2진수의 각 비트를 지정된 횟수만큼 왼쪽으로 이동 시킴
  • 정수의 비트를 한 자리씩 왼쪽 이동하면 그 정숫값은 2배가 됨
  • 가장 오른쪽 위치의 빈자리는 0으로 채움
  • << 표현
  • 10101011 << 1 → 101010110
let x = 171
let z = x << 1
print(z)    // 342

let x = 171
let z = x << 2
print(z)    // 684

 

 

오른쪽 시프트 비트 연산

  • 2진수의 각 비트를 지정된 횟수만큼 오른쪽으로 이동
  • 정수의 비트를 오른쪽으로 한 자리씩 이동하면 그 정숫값은 절반이 됨
  • 오른쪽으로 비트 이동은 오른쪽 끝의 마지막 비트가 폐기 됨
  • 최상위 비트는 양수, 음수를 가리키는데 사용되는 부호비트가 설정되어 있는지에 따라 결정됨
  • >> 표현 
  • 10101011 >> 1 → 01010101
let x = 171
let z = x >> 1
print(z)    // 85

let x = 171
let z = x >> 2
print(z)    // 42

'Swift' 카테고리의 다른 글

Swift - 4. 함수, 메서드, 클로저 개요  (1) 2023.12.26
Swift - 3. 제어 흐름  (0) 2023.12.26
Swift - 1. 데이터 타입  (0) 2023.12.24
Swift - Dictionary  (0) 2023.09.02
Swift - HIG (Human Interface Guide)  (0) 2023.08.28