61 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: bitwise operator example | ||
|  | localeTitle: exemplo de operador bit a bit | ||
|  | --- | ||
|  | # Operadores bit a bit
 | ||
|  | 
 | ||
|  | ## Tabela verdade
 | ||
|  | 
 | ||
|  |  | ||
|  | 
 | ||
|  | Os operadores bit a bit são semelhantes aos operadores lógicos, exceto pelo fato de trabalharem em uma escala menor - representações binárias de dados. Qualquer dado pode ser convertido em seu equivalente binário. Embora os operadores binários trabalhem em nível binário, mas eles são operados apenas entre valores decimais normais. | ||
|  | 
 | ||
|  | ## Tipos de operadores bit a bit
 | ||
|  | 
 | ||
|  | ### Bit a bit OU
 | ||
|  | 
 | ||
|  | OR bit a bit é um operador binário (opera em dois operandos). É denotado por |. O | operador compara bits correspondentes de dois operandos. Se um dos bits é 1, dá 1. Se não, dá 0. | ||
|  | 
 | ||
|  | ### Bit a bit E
 | ||
|  | 
 | ||
|  | Bitwise AND é um operador binário (opera em dois operandos). É denotado por &. O operador & compara os bits correspondentes de dois operandos. Se ambos os bits são 1, ele dá 1. Se um dos bits não for 1, ele dará 0. | ||
|  | 
 | ||
|  | ### Complemento Bitwise
 | ||
|  | 
 | ||
|  | O complemento bit a bit é um operador unário (funciona em apenas um operando). É denotado por ~. O operador ~ inverte o padrão de bits. Faz a cada 0 a 1 e a cada 1 a 0. | ||
|  | 
 | ||
|  | ### Bit a bit XOR
 | ||
|  | 
 | ||
|  | Bitwise XOR é um operador binário (opera em dois operandos). É denotado por ^. O operador ^ compara os bits correspondentes de dois operandos. Se os bits correspondentes são diferentes, dá 1. Se os bits correspondentes são os mesmos, dá 0. | ||
|  | 
 | ||
|  | ### Desvio à esquerda
 | ||
|  | 
 | ||
|  | O operador de deslocamento à esquerda << desloca um padrão de bits para a esquerda por certo número de bits especificados, e os bits de zero são deslocados para as posições de baixa ordem. | ||
|  | 
 | ||
|  | ### Deslocamento para a direita
 | ||
|  | 
 | ||
|  | O operador de deslocamento à direita >> desloca um padrão de bits para a direita por certo número de bits especificados. Se o número for um número com sinal de complemento de 2, o bit de sinal é deslocado para as posições de ordem superior. | ||
|  | 
 | ||
|  | ### Deslocamento à direita não assinado
 | ||
|  | 
 | ||
|  | O operador de deslocamento à direita sem sinal >>> muda o zero para a posição mais à esquerda. | ||
|  | 
 | ||
|  | ### Exemplo de operadores bit a bit:
 | ||
|  | 
 | ||
|  | ```java | ||
|  |     int a = 60;          /* 60 = 0011 1100 represents 60 in binary*/  | ||
|  |     int b = 13;          /* 13 = 0000 1101 */  | ||
|  |     int c = 0;  | ||
|  |   | ||
|  |     c = a & b;        /* 12 = 0000 1100 */  | ||
|  |     c = a | b;        /* 61 = 0011 1101 */  | ||
|  |     c = a ^ b;        /* 49 = 0011 0001 */  | ||
|  |     c = ~a;           /*-61 = 1100 0011  :Invert all bits */  | ||
|  |   | ||
|  |     // shift operators : zeros are shifted in to replace the discarded bits  | ||
|  |     c = a << 2;       /* 240 = 1111 0000 : Shift left 2 bits*/  | ||
|  |     c = a >> 2;       /* 15 = 1111 */  | ||
|  |     c = a >>> 2;      /* 15 = 0000 1111 : Zero fill right shift*/  | ||
|  | ``` | ||
|  | 
 | ||
|  | **PARA MAIS INFORMAÇÕES:** [Clique Aqui](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) |