본문 바로가기
공부/스위프트

[스위프트] 비트 연산자 종류와 사용법

by 초코팅촉 2023. 7. 2.
728x90

비트 연산자는 글을 쓰다보니 길어져 따로 쓰는게 나을것 같았다.

비트 연산자

비트값을 바로 비교해 사용하기때문에 매우 빠르다는 장점이 있다.

그러나 좀 헷갈릴 수 있다. 주의해서 사용하도록 하자.

 

1. &(AND)

두 비트값을 비교해서 비트값을 둘다 1이면 1로 둘다 0이면 0으로 만든다.

var first: UInt8 = 0b11110000
var second: UInt8 = 0b01110000

var result = String(first & second, radix: 2)	//01110000
/*
*    11110000
*    01110000
*    -----------
*    01110000
*/

 

2. |(OR)

두 비트중 하나라도 1이면 1로 만든다.

var one: UInt8 = 0b10110000
var two: UInt8 = 0b01101000

var result = String(one | two, radix: 2)	//11111000
/*
*    10110000
*    01101000
*    -----------
*    11111000
*/

 

3. ^(XOR)

두 비트가 서로 다르면 1, 같으면 0으로 만든다.

var one: UInt8 = 0b10110000
var two: UInt8 = 0b01101000

var result = String(one ^ two, radix: 2)	//11011000
/*
*    10110000
*    01101000
*    -----------
*    11011000
*/

 

4. ~(NOT)

비트값을 반대로 뒤집는다.

var one: UInt8 = 0b11110000

var result = String(~one, radix: 2)    //00001111
/*
*    11110000
*    -----------
*    00001111
*/

 

5. <<(Left Shift)

변수 << n라 쓰며 비트를 n칸 만큼 왼쪽으로 움직인다.

var one: UInt8 = 0b11110000

var result = String(one << 1, radix: 2)    //11100000
/*
*    11110000
*    -----------
*    11100000
*/

 

6. >>(Right Shift)

변수 >> n라 쓰며 비트를 n칸 만큼 오른쪽으로 움직인다.

var one: UInt8 = 0b11110000

var result = String(one >> 1, radix: 2)    //01111000
/*
*    11110000
*    -----------
*    01111000
*/

 

 

스위프트 문법 - 비트 연산자