PHP, escovando bits

– "&" – Porta Lógica AND

Tabela da Verdade: 

A B A & B
0 0 0
0 1 0
1 0 0
1 1 1

 

Código: 

$a = 1;

$b = 0;

if($a & $b){

echo "Teste AND: true";

}else{

echo "Teste AND: false";

}

?>

Obs: Só será true se os valores de A e B forem 1

 

– "|" – Porta lógica OR

Tabela da Verdade: 

A B A | B
0 0 0
0 1 1
1 0 1
1 1 1

 

Código: 

$a = 1;

$b = 0;

if($a | $b){

echo "Teste OR: true";

}else{

echo "Teste OR: false";

}

?>

Obs: Só será true se os valores de A ou B ou ambos for(em) 1

 

– "^" – Porta lógica XOR

Tabela da verdade:

 
A B A ^ B
0 0 0
0 1 1
1 0 1
1 1 0

 

 

Código: 

$a = 1;

$b = 0;

if($a ^ $b){

echo "Teste XOR: true";

}else{

echo "Teste XOR: false";

}

?>

Obs: Só será true se o valor de A for o contrário de B e vice e versa.

 

– "~" – Porta lógica NOT

Tabela da verdade:

A ~A
0 1
1 0

Obs: O negado é o inverso do valor de A.

 

– ">>" – Move os bits para a direita

$num = 8; //Em binario, 1000

$num = $num >> 2; 

echo $num; //Aparecerá 2 que em binário = 0010

?>

 

 

– "<<" – Move os bits para a esquerda

$num = 2; //Em binario, 0010

$num = $num << 2; 

echo $num; //Aparecerá 8 que em binário = 1000

?>

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *