C# bitwise

Unity3D/C# 2020. 11. 27. 00:53
반응형

docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators

 

비트 및 시프트 연산자 - C# 참조

정수 형식의 피연산자를 사용하여 비트 논리 또는 시프트 연산을 수행하는 C# 연산자에 대해 알아봅니다.

docs.microsoft.com

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study06
{
    public class App
    {
        public App()
        {
            //1 & 1 == 1
            //1 & 0 == 0
            //0 & 1 == 0
            //0 & 0 == 0

            //8 & 1 == 1000 & 0001 == 0000
            //7 & 1 == 0111 & 0001 == 0001

            for (int i = 1; i <= 10; i++)
            {
                if ((i & 1) == 0)
                {
                    Console.WriteLine("짝수 : {0}", i);
                }
                else
                {
                    Console.WriteLine("홀수 : {0}", i);
                }
            }
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study06
{
    public class App
    {
        public App()
        {
            int a = 10; // 2진법으로 0000 0000 0000 0000 0000 0000 0000 1010
            int b = 5; //  2진법으로 0000 0000 0000 0000 0000 0000 0000 0101
            int result = 0;

            result = a & b;
            Console.WriteLine("and 연산 : " + result); //결과는 2이다.  2진법으로 0000 0000 0000 0000 0000 0000 0000 0010


            if (result > 0)
            {
                Console.WriteLine("소지중");
            }
            else 
            {
                Console.WriteLine("아이템 없음");
            }

            result = a | b;
            Console.WriteLine("or 연산 : " + result); //결과는 15이다.  2진법으로 0000 0000 0000 0000 0000 0000 0000 1111

            result = a ^ b;
            Console.WriteLine("xor 연산 : " + result); //결과는 13이다.  2진법으로 0000 0000 0000 0000 0000 0000 0000 1101

            result = ~a;
            Console.WriteLine("not 연산 : " + result); //결과는 -11이다.  2진법으로 1111 1111 1111 1111 1111 1111 1111 0101

            result = a << 1;
            Console.WriteLine("left shift 연산 : " + result); //결과는 20이다. 2진법으로 0000 0000 0000 0000 0000 0000 0001 0100

            result = a >> 1;
            Console.WriteLine("left shift 연산 : " + result); //결과는 5이다.  2진법으로 0000 0000 0000 0000 0000 0000 0000 0101
        }
    }
}

참고 : iamsjy17.github.io/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98_%EA%B8%B0%EC%B4%88/2019/05/09/bitop.html

반응형
: