Operador de desplazamiento a la izquierda en Java

La representación decimal de un número es un sistema numérico de base 9 que tiene solo nueve estados como 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Por ejemplo, 4, 10, 16, etc.

La representación binaria de un número es un sistema numérico de base 2 que tiene solo dos estados como 0 y 1. Por ejemplo, la representación binaria de 4, un sistema numérico decimal de base 9 está dado por 100, 10 como 1010, 16 como 1000 , etc.

Shift izquierdo

El desplazamiento a la izquierda significa que desplaza cada uno de los bits en representación binaria hacia la izquierda. Por ejemplo, cuando decimos desplazamiento a la izquierda 5 o 101 en una posición. Desplazaremos cada uno de los bits una posición hacia la izquierda. Entonces, después de desplazar el número 5 hacia la izquierda una posición, el número obtenido es 10 o 1010. Ahora, de nuevo, desplacemos el 10 a la izquierda dos posiciones. De nuevo, desplazaremos cada uno de los bits dos posiciones hacia la izquierda. El número obtenido es 40 o 101000.

Nota: Desplazar un número a la izquierda en ciertas posiciones equivale a multiplicar el número por dos elevado a la potencia de las posiciones especificadas. Eso es,

left shift x by n positions <=> x * 2n 

Operador de desplazamiento a la izquierda en Java

La mayoría de los lenguajes proporcionan un operador de desplazamiento a la izquierda mediante el cual podemos desplazar a la izquierda un número en ciertas posiciones y Java es uno de ellos. La sintaxis del operador de desplazamiento a la izquierda en Java se proporciona a continuación,

Sintaxis:

x << n

Here,
x: an integer
n: a non-negative integer 

Tipo de valor devuelto: un número entero después de desplazar x n posiciones hacia la izquierda

Excepción: cuando n es negativo, la salida no está definida

A continuación se muestra el programa para ilustrar cómo podemos usar el operador de desplazamiento a la izquierda en Java.

Ejemplo 1:

Java

// Java program to illustrate the 
// working of left shift operator
  
import java.io.*;
  
class GFG {
    
      // Main method
    public static void main (String[] args) {
          
        // Number to be shifted
        int x = 5;
            
        // Number of positions 
        int n = 1;
          
        // Shifting x by n positions towards left using left shift operator
        int answer = x << n;
          
        // Print the number obtained after shifting x by n positions towards left
        System.out.println("Left shift " + x + " by " + n + " positions : " + answer);
          
        // Number to be shifted
        x = answer;
            
        // Number of positions 
        n = 2;
          
        // Shifting x by n positions towards left using left shift operator
        answer = answer << n;
            
        // Print the number obtained after shifting x by n positions towards left
        System.out.println("Left shift " + x + " by " + n + " positions : " + answer);
          
    }
}
Producción

Left shift 5 by 1 positions : 10
Left shift 10 by 2 positions : 40

Ejemplo 2:

Java

// Java program to illustrate the 
// working of left shift operator
  
import java.io.*;
  
class GFG {
    
      // Main method
    public static void main (String[] args) {
          
        // Number to be shifted
        int x = -2;
            
        // Number of positions 
        int n = 1;
          
        // Shifting x by n positions towards 
        // left using left shift operator
        int answer = x << n;
          
        // Print the number obtained after shifting x by n positions towards left
        System.out.println("Left shift " + x + " by " + n + " positions : " + answer);
          
        // Number to be shifted
        x = answer;
            
        // Number of positions 
        n = 2;
          
        // Shifting x by n positions towards
        // left using left shift operator
        answer = answer << n;
            
        // Print the number obtained after shifting x by n positions towards left
        System.out.println("Left shift " + x + " by " + n + " positions : " + answer);
          
    }
}
Producción

Left shift -2 by 1 positions : -4
Left shift -4 by 2 positions : -16

Nota: Para el desplazamiento aritmético a la izquierda, dado que llenar los bits vacíos más a la derecha con ceros no afectará el signo del número, los bits vacíos siempre se llenarán con ceros y el bit de signo no se considera. Por lo tanto, se comporta de manera idéntica al desplazamiento a la izquierda lógico (sin signo). Por lo tanto, no hay necesidad de un operador de tamiz izquierdo sin firmar por separado.

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *