문제

C#의 2 개의 32 비트 정수에서 약간의 작업을 수행하고 작동합니까?

관련된:

가장 일반적인 C# 비트 비트 작업.

도움이 되었습니까?

해결책

& 운영자와 함께

다른 팁

사용 & 운영자.

바이너리 및 연산자는 적분 유형 [.]에 대해 사전 정의되어 있으며 비트와 오페라를 계산합니다.

에서 MSDN.

var x = 1 & 5;
//x will = 1
const uint 
  BIT_ONE = 1,
  BIT_TWO = 2,
  BIT_THREE = 4;

uint bits = BIT_ONE + BIT_TWO;

if((bits & BIT_TWO) == BIT_TWO){ /* do thing */ }

사용 및 운영자 (&&)

int a = 42;
int b = 21;
int result = a & b;

조금 더 많은 정보는 여기에 첫 번째 Google 결과가 있습니다.
http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-xor-and-amp-amp-min.aspx

그만큼 & 운영자

var result = (UInt32)1 & (UInt32)0x0000000F;

// result == (UInt32)1;
// result.GetType() : System.UInt32

결과를 INT에 캐스팅하려고하면 0x80000000에서 시작하여 오버플로 오류가 발생할 수 있습니다. 확인되지 않은 경우 비트 마스크로 작업 할 때 드문 오류 오류를 피할 수 있습니다.

result = 0xFFFFFFFF;
Int32 result2;
unchecked
{
 result2 = (Int32)result;
}

// result2 == -1;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top