C# bitwise
Unity3D/C# 2020. 11. 27. 00:53docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators
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
'Unity3D > C#' 카테고리의 다른 글
c# async await (0) | 2021.03.10 |
---|---|
.NET의 \0(U + 0000) 과 String (0) | 2020.12.02 |
C# 확률을 적용한 랜덤값 선택하기 (cumulative) (0) | 2020.11.26 |
디버거에서 변수에 대한 메모리 (0) | 2020.11.24 |
한글 받침에따라서 '을/를' 구분하기 (0) | 2020.10.19 |