Bit nessa e em número inteiro de 32 bits
-
20-09-2019 - |
Pergunta
Como você executa um bit e operação em dois números inteiros de 32 bits em C#?
Relacionado:
Solução
Com o Operador
Outras dicas
Use o &
operador.
Os operadores binários são predefinidos para os tipos integrais [.] Para tipos integrais, e calcula bit e seus operandos.
A partir de 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 */ }
Use & Operator (não &&)
int a = 42;
int b = 21;
int result = a & b;
Para um pouco mais de informação, aqui está o primeiro resultado do Google:
http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx
var result = (UInt32)1 & (UInt32)0x0000000F;
// result == (UInt32)1;
// result.GetType() : System.UInt32
Se você tentar lançar o resultado para o INT, provavelmente receberá um erro de transbordamento a partir de 0x80000000, desmarcado permite evitar erros de transbordamento que não são tão incomuns ao trabalhar com as máscaras de bits.
result = 0xFFFFFFFF;
Int32 result2;
unchecked
{
result2 = (Int32)result;
}
// result2 == -1;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow