비트 및 시프트 연산자
&, |, ^, ~ 및 시프트 연산자로 비트를 조작합니다.
비트 및 시프트 연산자은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
비트와 이진수
정수는 비트로 저장됩니다. 비트 단위 연산자는 이러한 개별 비트에 적용됩니다. C#에서는 &, |, ^, ~, <<, >>를 제공합니다.
using System;
class Program {
static void Main() {
int x = 5;
Console.WriteLine(Convert.ToString(x, 2));
}
}비트 단위 AND: &
&는 두 비트 모두 1일 때만 비트를 1로 설정합니다. 5 & 3은 101과 011을 비교하여 001 = 1을 얻습니다.
using System;
class Program {
static void Main() {
Console.WriteLine(5 & 3);
Console.WriteLine(12 & 10);
}
}비트 단위 OR: |
|는 어느 한 비트라도 1이면 비트를 1로 설정합니다. 5 | 3은 111 = 7을 얻습니다.
using System;
class Program {
static void Main() {
Console.WriteLine(5 | 3);
Console.WriteLine(8 | 1);
}
}비트 단위 XOR: ^
^는 두 비트가 다를 때 비트를 1로 설정합니다. 5 ^ 3은 110 = 6을 얻습니다.
using System;
class Program {
static void Main() {
Console.WriteLine(5 ^ 3);
Console.WriteLine(7 ^ 7);
}
}비트 단위 NOT: ~
~은 모든 비트를 반전합니다. 2의 보수 표현을 사용하므로 ~n은 -(n + 1)과 같습니다.
using System;
class Program {
static void Main() {
Console.WriteLine(~5);
Console.WriteLine(~0);
}
}왼쪽 시프트: <<
<<는 비트를 왼쪽으로 이동하고 오른쪽을 0으로 채웁니다. 한 번 이동할 때마다 값이 2배가 됩니다. 예를 들어 1 << 3은 8입니다.
using System;
class Program {
static void Main() {
Console.WriteLine(1 << 3);
Console.WriteLine(5 << 1);
}
}오른쪽 시프트: >>
>>는 비트를 오른쪽으로 이동합니다. 양수에서는 한 번 이동할 때마다 값이 절반이 됩니다. 예를 들어 20 >> 2는 5입니다.
using System;
class Program {
static void Main() {
Console.WriteLine(20 >> 2);
Console.WriteLine(8 >> 1);
}
}비트 마스크
마스크는 특정 비트만 분리합니다. 값에 마스크를 AND하여 해당 비트만 유지할 수 있습니다.
using System;
class Program {
static void Main() {
int value = 0b1011;
int mask = 0b0110;
Console.WriteLine(value & mask);
}
}비트 설정 및 지우기
단일 비트 마스크와 |를 함께 사용하면 비트를 설정할 수 있고, 반전된 마스크와 &를 함께 사용하면 비트를 지울 수 있습니다.
using System;
class Program {
static void Main() {
int flags = 0;
flags |= (1 << 2);
Console.WriteLine(flags);
flags &= ~(1 << 2);
Console.WriteLine(flags);
}
}비트 확인
비트가 설정되었는지 확인하려면 해당 비트의 마스크와 AND한 뒤 0이 아닌지 비교하십시오.
using System;
class Program {
static void Main() {
int flags = 0b0100;
bool isSet = (flags & (1 << 2)) != 0;
Console.WriteLine(isSet);
}
}빠른 곱셈으로서의 시프트
시프트는 2의 거듭제곱으로 곱하거나 나누는 빠른 방법이며, 성능이 중요한 코드에서 자주 사용됩니다.
using System;
class Program {
static void Main() {
int n = 7;
Console.WriteLine(n << 2);
Console.WriteLine(n >> 1);
}
}빠른 확인
비트 단위 연산에 대한 지식을 확인해 보십시오.
복습
비트 단위 연산자는 비트별로 작동합니다. &는 AND, |는 OR, ^는 XOR, ~는 NOT입니다. <<와 >>는 비트를 왼쪽이나 오른쪽으로 이동하여 2의 거듭제곱으로 곱하거나 나눕니다.
마스크를 사용하면 개별 비트를 설정하고 지우고 확인할 수 있습니다. 이는 플래그와 저수준 데이터 작업의 기반입니다.
자주 묻는 질문
“비트 및 시프트 연산자” 강의는 무료인가요?
네 — “비트 및 시프트 연산자” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“비트 및 시프트 연산자”에서 뭘 배우나요?
&, |, ^, ~ 및 시프트 연산자로 비트를 조작합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C# Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“비트 및 시프트 연산자” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 산술 및 대입 연산자
- 비교 및 논리 연산자
- 비트 및 시프트 연산자
- 연산자 우선순위와 결합성