📌 비트 연산자
비트에 대한 연산을 하는 연산자로 이진수에 대한 데이터를 연산처리합니다.
📖 AND ( & )
두개의 비트가 1인경우 1,
그 외에는 0을 반환한다.
sbyte byteNum1 = 0b_0000_1111;
sbyte byteNum2 = 0b_0000_0011;
Console.WriteLine($"byteNum1 & byteNum2: {byteNum1 & byteNum2}");
[출력]
byteNum1 & byteNum2: 3
출력값을 분석해보자.
0000 1111
0000 0011
ㅡㅡㅡㅡㅡㅡ( & )
0000 0011 = 3
따라서 3의 값을 반환한다.
📖 OR ( | )
둘 중 하나의 비트가 1인 경우 1,
그 외에는 0을 반환한다.
sbyte byteNum1 = 0b_0000_1111;
sbyte byteNum2 = 0b_0000_0011;
Console.WriteLine($"byteNum1 | byteNum2: {byteNum1 | byteNum2}");
[출력]
byteNum1 | byteNum2: 15
출력값을 분석해보자.
0000 1111
0000 0011
ㅡㅡㅡㅡㅡㅡ( | )
0000 1111 = 15
따라서 15의 값을 반환한다.
📖 NOT ( ! )
비트값을 반전시킨다.
비트값이 1인경우 0,
비트값이 0인경우 1을 반환한다.
sbyte byteNum = 0b_0000_1111;
Console.WriteLine($"~byteNum : {~byteNum}");
Console.WriteLine($"{Convert.ToString(~byteNum, 2)}");
[출력]
~byteNum : -16
11111111111111111111111111110000
출력값을 분석해보자.
0000 0000 0000 0000 0000 0000 0000 1111
ㅡㅡㅡㅡㅡㅡ( ~ )
1111 1111 1111 1111 1111 1111 1111 0000 = -16
따라서 -16의 값을 반환한다.
📖 XOR ( ^ )
두 개의 비트값이 같은 경우 0,
두 개의 비트값이 다른 경우 1을 반환한다.
sbyte byteNum1 = 0b_0000_1111;
sbyte byteNum2 = 0b_0000_0011;
Console.WriteLine($"byteNum1 ^ byteNum2: {byteNum1 ^ byteNum2}");
[출력]
byteNum1 ^ byteNum2: 12
출력값을 분석해보자.
0000 1111
0000 0011
ㅡㅡㅡㅡㅡㅡ( ^ )
0000 1100 = 12
따라서 12의 값을 반환한다.
📖 쉬프트 연산자 ( >>, << )
비트를 이동시키는 연산자이다.
uint uintNum = 0x01;
Console.WriteLine($"{Convert.ToString(uintNum, 2)}");
Console.WriteLine($"\n비트 왼쪽으로 한칸 이동 : {uintNum << 1}");
Console.WriteLine($"{Convert.ToString(uintNum << 1, 2)}");
Console.WriteLine($"\n비트 왼쪽으로 두칸 이동 : {uintNum << 2}");
Console.WriteLine($"{Convert.ToString(uintNum << 2, 2)}");
Console.WriteLine($"\n비트 왼쪽으로 세칸 이동 : {uintNum << 3}");
Console.WriteLine($"{Convert.ToString(uintNum << 3, 2)}");
[출력]
1
비트 왼쪽으로 한칸 이동 : 2
10
비트 왼쪽으로 두칸 이동 : 4
100
비트 왼쪽으로 세칸 이동 : 8
1000
출력값을 분석해보자.
1. 한칸 이동 :
0000 0001
ㅡㅡㅡㅡㅡㅡ( << 1 )
0000 0010 = 2
2. 두칸 이동 :
0000 0001
ㅡㅡㅡㅡㅡㅡ( << 2 )
0000 0100 = 4
3. 세칸 이동 :
0000 0001
ㅡㅡㅡㅡㅡㅡ( << 3 )
0000 1000 = 8
'C#' 카테고리의 다른 글
Day17_if문 (0) | 2023.03.14 |
---|---|
Day16_기타 연산자 (0) | 2023.03.14 |
Day14_논리 연산자 (0) | 2023.03.14 |
Day13_비교/관계 연산자 (0) | 2023.03.11 |
Day12_증감 연산자 (0) | 2023.03.11 |