Bienvenidos a otro capítulo de este Curso Gratis de Java para Hackers – Operadores de Turno. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Este curso está en constante actualización. Tendrá revisiones y actualizaciones anuales y correcciones y mejoras mensuales. Este curso está en un ciclo de crecimiento y mejora constante, agradecemos su apoyo difundiendo, compartiendo, comentando o simplemente leyéndolo.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Los operadores 

Los operadores constituyen el componente básico de cualquier lenguaje de programación. Java también proporciona muchos tipos de operadores que se pueden utilizar según la necesidad de realizar diversos cálculos y funciones, ya sean lógicos, aritméticos, relacionales, etc. Se clasifican según la funcionalidad que proporcionan.

Tipos de operadores en Java

Java comprende varios operadores que se utilizan para realizar diferentes operaciones según los requisitos. Estos operadores se clasifican según la funcionalidad que ofrecen. Entonces, aquí hay una lista detallada de operadores de Java y su explicación. Operador en Java es un símbolo que se utiliza para realizar operaciones. Por ejemplo: +, -, *, / etc.

Como podemos ver los nombres y la agrupación de los operadores “varían” según la fuente consultada.

Hay muchos tipos de operadores en Java, nosotros los subdividiremos en estas categorías:

  • Operadores aritméticos
  • Operadores de Asignación
  • Operadores unarios
  • Operadores relacionales
  • Operadores ternarios
  • Operadores bit a bit
  • Operadores lógicos
  • Operadores de turno

Operadores de turno

OperadorNombreEjemploResultadoDescripción
<< Desplazamiento de bits hacia la izquierda15 << 260Desplazamiento a la izquierda: desplaza los bits del primer operando hacia la izquierda y llena 0 en los vacíos de la izquierda. El segundo operando especifica el número de lugares a filtrar. 
>> Desplazamiento de bits hacia la derecha53 >> 213Desplazamiento a la derecha con signo: desplaza los bits del primer operando hacia la derecha y llena los vacíos con 0. El bit más a la izquierda se decide según el signo del número inicial.
>>> Desplazamiento de bits hacia la derecha sin signo84 >>> 221Desplazamiento a la derecha sin signo: desplaza a la derecha el primer operando. El bit más a la izquierda es 0.

Para entender mejor estos operadores se detallarán los mismos mediante el desarrollo de ejemplos.

Los operadores de desplazamiento se utilizan para desplazar bits de un número hacia la derecha o hacia la izquierda, multiplicando o dividiendo un número. Así, se utiliza cuando queremos multiplicar o dividir un número por dos. 

El formato general de estos operadores es:

The syntax for the left shift operator is <<.

Ejemplo:

int num = 5;     // Binary: 0000 0101

int result = num << 2;    // Left shift by 2 positions

System.out.println(“Result of Left Shift: ” + result);

Producción:

Result of Left Shift: 20

Explicación:

En este ejemplo, la representación binaria de num es 0000 0101. Al desplazar num hacia la izquierda en 2 posiciones (num << 2), movemos los bits dos posiciones hacia la izquierda y llenamos las posiciones vacantes con ceros. El valor binario resultante es 0001 0100, que equivale a 20 en decimal.

Desplazamiento de bits

Los operadores de desplazamiento de bits suelen utilizarse para llevar a cabo operaciones muy rápidas de multiplicación y de división de enteros. Un desplazamiento a la izquierda equivale a una multiplicación por 2 y un desplazamiento a la derecha a una división por 2.

A diferencia de C y C++, Java siempre conserva el bit de signo (el bit izquierdo) después de hacer un desplazamiento. Este tipo de desplazamiento se conoce como desplazamiento aritmético o desplazamiento de extensión de signo.

Estas operaciones se realizan tomando 32 bits como longitud de los operandos. Java convierte a tipo int los tipo short y byte antes de realizar el desplazamiento de bits. Esto significa que el tipo byte tendrá 32 bits en lugar de 8.

Luego de ejecutar el desplazamiento trunca el dato para convertir al tipo original.

Sintaxis

 number shift_op number_of_places_to_shift;

El desplazamiento de bits hacia la izquierda (<<),

funciona desplazando a la izquierda los bits del primer operando tantas veces como lo indica el segundo operando. Por la derecha siempre entrará el valor 0.  Esto es lo mismo que multiplicar el primer operando por 2 elevado al segundo operando. Este operador tiene en cuenta el signo.

Ejemplo:Sean m = 15 (11112) y n = 2 (102), m << n resultará 1111002 que en sistema decimal es 60 y n << m resultará 10000000000000000que en sistema decimal es 65536. Si a m se le aplica signo negativo, el resultado tendrá signo negativo, o sea -60.

El desplazamiento de bits hacia la derecha con signo (>>)

funciona desplazando a la derecha los bits del primer operando tantas veces como indica el segundo operando. Por la izquierda entra siempre el bit más significativo anterior.  Se debe tener en cuenta la cantidad de bits del tipo de dato sobre el cual se está trabajando, por ejemplo, un número entero es representado con 32 bits. Esto es lo mismo que dividir el primer operando por 2 elevado al segundo operando. Este operador tiene en cuenta el signo.

Ejemplo: Sean m = 53 (1101012) y n = 2 (102), m >> n resultará 0011012 que en sistema decimal es 13.

Tenga en cuenta que si se está trabajando con un número entero la representación del mismo será: 0000 0000 0000 0000 0000 0000 0011 01012   por lo cual por la izquierda entrarán siempre ceros.  En el caso de m = -1 y n = 2, si se realiza m >> n el resultado será -1, y sea n cualquier otro valor el resultado será siendo 1. Esto se debe a que los números negativos se representan en complemento a dos esto quiere decir que el número 1 será representado de la siguiente manera:

 1111 1111 1111 1111 1111 1111 1111 1111por lo tanto, sea cual sea el número que se desplace hacia la derecha, el número que ingresa por la izquierda será siempre 1, por lo que dará siempre el mismo resultado.

El desplazamiento de bits hacia la derecha sin signo (>>>)

funciona desplazando a la derecha los bits del primer operando tantas veces como indica el segundo operando sin tomar en cuenta el signo. Por la izquierda entra siempre entrará un cero.  Ejemplo: Sean m = 84 (10101002) y n = 2, si se realiza m >>> n el resultado será 101012 que en sistema decimal es 21.  Si m = -1 y n = 2, al realizarse m >>> n el resultado será 1073741823 ya que, como se mencionó anteriormente, los números negativos se representan en complemento a dos.

 -110 = 1111 1111 1111 1111 1111 1111 1111 11112. Por lo tanto -110 >>> 210 = 0011 1111 1111 1111 1111 1111 1111 11112 = 107374182310

<< (desplazamiento a la izquierda)Operador binario de desplazamiento a la izquierda. El valor de los operandos izquierdos se mueve hacia la izquierda el número de bits especificado por el operando derecho.Un << 2 dará 240 que es 1111 0000
>> (desplazamiento a la derecha)Operador de desplazamiento binario a la derecha. El valor de los operandos izquierdos se mueve hacia la derecha el número de bits especificado por el operando derecho.A >> 2 dará 15 que es 1111
>>> (relleno de cero desplazamiento a la derecha)Desplazar a la derecha el operador de relleno cero. El valor de los operandos izquierdos se mueve hacia la derecha la cantidad de bits especificados por el operando derecho y los valores desplazados se completan con ceros.A >>>2 dará 15 que es 0000 1111

Operador de desplazamiento a la izquierda de Java

El operador de desplazamiento a la izquierda de Java << se utiliza para desplazar todos los bits de un valor al lado izquierdo un número específico de veces.

El operador de desplazamiento a la izquierda desplaza los bits del operando izquierdo hacia la izquierda un número específico de posiciones. Los ceros se completan en el lado derecho. 

The syntax for the left shift operator is <<.

Ejemplo:

int num = 5;     // Binary: 0000 0101

int result = num << 2;    // Left shift by 2 positions

System.out.println(“Result of Left Shift: ” + result);

Producción:

Result of Left Shift: 20

Explicación:

En este ejemplo, la representación binaria de num es 0000 0101. Al desplazar num hacia la izquierda en 2 posiciones (num << 2), movemos los bits dos posiciones hacia la izquierda y llenamos las posiciones vacantes con ceros. El valor binario resultante es 0001 0100, que equivale a 20 en decimal.

Ejemplo de operador de desplazamiento a la izquierda de Java

  1. public class OperatorExample{  
  2. public static void main(String args[]){  
  3. System.out.println(10<<2);//10*2^2=10*4=40  
  4. System.out.println(10<<3);//10*2^3=10*8=80  
  5. System.out.println(20<<2);//20*2^2=20*4=80  
  6. System.out.println(15<<4);//15*2^4=15*16=240  
  7. }}  

Producción:

40
80
80
240

Operador de desplazamiento a la derecha de Java

El operador de desplazamiento a la derecha de Java >> se utiliza para mover el valor del operando izquierdo a la derecha la cantidad de bits especificados por el operando derecho. El operador de desplazamiento a la derecha desplaza los bits del operando izquierdo hacia la derecha un número específico de posiciones. El bit de signo se utiliza para llenar las posiciones vacantes en el lado izquierdo para tipos de datos con signo (se copia el bit más significativo). Para los tipos de datos sin signo , se completan ceros. 

The syntax for the right shift operator is >>.

Ejemplo:

int num = -16;    // Binary: 1111 0000

int result = num >> 2;    // Right shift by 2 positions

System.out.println(“Result of Right Shift: ” + result);

Producción:

Result of Right Shift: -4

Explicación:

La representación binaria de num es 1111 0000. Al desplazar num a la derecha 2 posiciones (num >> 2), movemos los bits dos posiciones hacia la derecha. Para los tipos de datos con signo, el bit más significativo (bit de signo) se conserva durante el cambio. El valor binario resultante es 1111 1100, que equivale a -4 en decimal.

Ejemplo de operador de desplazamiento a la derecha de Java

  1. public OperatorExample{  
  2. public static void main(String args[]){  
  3. System.out.println(10>>2);//10/2^2=10/4=2  
  4. System.out.println(20>>2);//20/2^2=20/4=5  
  5. System.out.println(20>>3);//20/2^3=20/8=2  
  6. }}  

Producción:

2
5
2

Ejemplo de operador de desplazamiento de Java: >> vs >>>

El operador de desplazamiento a la derecha sin signo desplaza los bits del operando izquierdo hacia la derecha un número específico de posiciones. Los ceros se completan en el lado izquierdo. No conserva el bit de signo. 

The syntax for the unsigned right shift operator is >>>.

Ejemplo:

int num = -16;    // Binary: 1111 0000

int result = num >>> 2;    // Unsigned right shift by 2 positions

System.out.println(“Result of Unsigned Right Shift: ” + result);

Producción:

Result of Unsigned Right Shift: 1073741820

Explicación:

En el ejemplo, la representación binaria de num es 1111 0000. Al realizar el desplazamiento a la derecha sin signo num >>> 2, movemos los bits dos posiciones hacia la derecha y llenamos las posiciones vacantes con ceros. El valor binario resultante es 0011 1100 1111 1111 1111 1111 1111 1100, que equivale a 1073741820 en decimal.

  1. public class OperatorExample{  
  2. public static void main(String args[]){  
  3.     //For positive number, >> and >>> works same  
  4.     System.out.println(20>>2);  
  5.     System.out.println(20>>>2);  
  6.     //For negative number, >>> changes parity bit (MSB) to 0  
  7.     System.out.println(-20>>2);  
  8.     System.out.println(-20>>>2);  
  9. }}  

Producción:

5
5
-5
1073741819

Ejemplo de operadores bit a bit  y de turno en Java (con programa)

// Java Program to implement

// bitwise operators

import java.io.*;

// Driver class

class laprovittera {

    // main function

    public static void main(String[] args)

    {

        // Bitwise operators

        int d = 0b1010;

        int e = 0b1100;

        System.out.println(“d & e: ” + (d & e));

        System.out.println(“d | e: ” + (d | e));

        System.out.println(“d ^ e: ” + (d ^ e));

        System.out.println(“~d: ” + (~d));

        System.out.println(“d << 2: ” + (d << 2));

        System.out.println(“e >> 1: ” + (e >> 1));

        System.out.println(“e >>> 1: ” + (e >>> 1));

    }

}

Producción

d & e: 8
d | e: 14
d ^ e: 6
~d: -11
d << 2: 40
e >> 1: 6
e >>> 1: 6

Ejemplo

Java

// Java Program to implement

// shift operators

import java.io.*;

// Driver Class

class laprovittera {

    // main function

    public static void main(String[] args)

    {

        int a = 10;

          // using left shift

        System.out.println(“a<<1 : ” + (a << 1));

        // using right shift

        System.out.println(“a>>1 : ” + (a >> 1));

    }

}

Producción

a<<1 : 20
a>>1 : 5

Ejemplo de operadores bit a bit  y de turno en Java (con programa)

A continuación se muestra un ejemplo que muestra el uso de varios operadores bit a bit en Java:

public class BitwiseOperatorExample {
    public static void main(String[] args) {
        int a = 10; // Binary: 0000 1010
        int b = 6;  // Binary: 0000 0110

// Bitwise AND
        int bitwiseAnd = a & b;
        System.out.println(“Bitwise AND: ” + bitwiseAnd);

// Bitwise OR
        int bitwiseOr = a | b;
        System.out.println(“Bitwise OR: ” + bitwiseOr);

// Bitwise XOR
        int bitwiseXor = a ^ b;
        System.out.println(“Bitwise XOR: ” + bitwiseXor);

// Bitwise complement
        int bitwiseComplement = ~a;
        System.out.println(“Bitwise Complement of a: ” + bitwiseComplement);

// Left shift
        int leftShift = a << 2;
        System.out.println(“Left Shift of a: ” + leftShift);

// Right shift
        int rightShift = a >> 2;
        System.out.println(“Right Shift of a: ” + rightShift);

// Unsigned right shift
        int unsignedRightShift = a >>> 2;
        System.out.println(“Unsigned Right Shift of a: ” + unsignedRightShift);
    }
}

Producción:

Bitwise AND: 2
Bitwise OR: 14
Bitwise XOR: 12
Bitwise Complement of a: -11
Left Shift of a: 40
Right Shift of a: 2
Unsigned Right Shift of a: 2

 

Explicación:

  • En este ejemplo, tenemos dos variables enteras a y b inicializadas con valores 10 y 6, respectivamente.
  • La operación AND (&) bit a bit realiza la operación AND en cada par de bits correspondiente, lo que da como resultado 2.
  • La operación OR bit a bit (|) realiza la operación OR en cada par de bits correspondiente, lo que da como resultado 14.
  • La operación XOR bit a bit (^) realiza la operación XOR en cada par de bits correspondiente, lo que da como resultado 12.
  • La operación de complemento bit a bit (~) invierte todos los bits de a, lo que da como resultado -11.
  • La operación de desplazamiento a la izquierda (<<) desplaza los bits de dos posiciones hacia la izquierda, lo que da como resultado 40.
  • La operación de desplazamiento a la derecha (>>) desplaza los bits de dos posiciones hacia la derecha, lo que da como resultado 2.
  • La operación de desplazamiento a la derecha sin signo (>>>) desplaza los bits de dos posiciones hacia la derecha, llenándolos con ceros, lo que da como resultado 2.

Ejemplo 3

En este ejemplo, estamos creando dos variables a y b y usando operadores bit a bit . Realizamos operaciones de desplazamiento a la izquierda, desplazamiento a la derecha y desplazamiento a la derecha con relleno cero e imprimimos los resultados.

public class Test {

   public static void main(String args[]) {

      int a = 60;        /* 60 = 0011 1100 */

      int c = 0;

      c = a << 2;       /* 240 = 1111 0000 */

      System.out.println(“a << 2 = ” + c );

      c = a >> 2;       /* 15 = 1111 */

      System.out.println(“a >> 2  = ” + c );

      c = a >>> 2;      /* 15 = 0000 1111 */

      System.out.println(“a >>> 2 = ” + c );

   }

}

Producción

a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

Universidad Hacking. Todo en Ciberseguridad. Curso Completo

Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí

Calificación: 4,6 de 5 (2.877 calificaciones) 15.284 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide

Lo que aprenderás

  • Seguridad informática
  • Hacking Ético en profundidad
  • Redes
  • Programación (Python) (Hacking con Python)
  • Análisis de Malware con laboratorios, practicas y ejecución de Malware para que veas su comportamiento.
  • Cómo reforzar tu Privacidad y Anonimato
  • Uso avanzado de Metasploit
  • Top 10 de Owasp Web, Top 10 de Owasp mobile y Top 10 de Owasp API
  • Seguridad informática para empresas
  • Kali linux de 0 a 100, Veremos su suite de herramientas de hacking y como explotar fallos en sistemas.
  • Termux y como hackear desde el celular
  • Seguridad informática server/web, profundizaremos en WordPress
  • Análisis de trafico en Wireshark
  • Y mucho, pero mucho más

¿Esto que significa?

Hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.

Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.

Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.

Si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.

Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.

Empieza a aprender ya mismo!

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

No solo te enseñamos, tambien te guíamos para que puedas conseguir trabajo como desarrollador y hacker…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis de Programación

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools