본문 바로가기
프로그래밍/C#

C# 비트 연산자

by bantomak 2023. 1. 15.
반응형

비트 연산자(Bitwise Operator)

키워드 논리 방식 논리 게이트
& 비트 논리곱 AND 
| 비트 논리합 OR
^ 비트 상호배제 XOR
~ 비트 부정 NOT
<< 비트 왼쪽 이동 -
>> 비트 오른쪽 이동 -

 

& 연산자 (논리 AND 연산자)

public class Program
{
    public static void Main()
    {
        int a = 4; // 00000000 00000000 00000000 00000100
        int b = 8; // 00000000 00000000 00000000 00001000

        int c = a & b;
        Console.WriteLine("c :{0}", c);
    }
}

결과값 : 0

 

public class Program
{
    public static void Main()
    {
        int a = 4;  // 00000000 00000000 00000000 00000100
        int b = 12; // 00000000 00000000 00000000 00001100

        int c = a & b;
        Console.WriteLine("c :{0}", c);
    }
}

결과값 : 4

 

& 연산자 (논리 OR 연산자)

public class Program
{
    public static void Main()
    {
        int a = 4; // 00000000 00000000 00000000 00000100
        int b = 8; // 00000000 00000000 00000000 00001000

        int c = a | b;
        Console.WriteLine("c :{0}", c);
    }
}

결과값 : 12

 

^ 연산자 (논리 XOR 연산자)

public class Program
{
    public static void Main()
    {
        int a = 15; // 00000000 00000000 00000000 00001111
        int b = 7;  // 00000000 00000000 00000000 00000111

        int c = a ^ b;
        Console.WriteLine("c :{0}", c);
    }
}

결과값 : 8

 

~ 연산자 (논리 부정 연산자)

using System;

class MyProgram
{
    public static void Main()
    {
        Console.WriteLine(~1);
        Console.WriteLine(~2);
        Console.WriteLine(~3);
        Console.WriteLine(~4);
    }
}

결과값 : 

-2
-3
-4
-5

 

실제 사용 예제

Half 매서드 : 비트 오른쪽 이동으로 절반으로 나누는 매서드

IsOdd 매서드 : 비트 논리곱을 이용해서 홀수 짝수를 판단하는 매서드

static int Half(int n)
{
    return n >> 1;
}

static bool IsOdd(int n)
{
    return (n & 1) == 1 ? true : false;
}

 

함께 읽으면 좋은 글

 

C# 연산자(Operators)

연산자(Operators) 산술 연산자 부울 논리 연산자 비트 연산자 같음 연산자 비교 연산자 멤버 엑세스 연산자 형식 테스트 연산자 사용자 정의 변환 연산자 산술 연산자(Arithmetic operators) 단항 연산자

jettstream.tistory.com

참조 사이트

 

폴시랩

자바스트립트, PHP, 워드프레스, HTML, CSS, 팁, 가이드, 일상이야기.

falsy.me

댓글