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
Operador | Nombre | Ejemplo | Resultado | Descripción |
<< | Desplazamiento de bits hacia la izquierda | 15 << 2 | 60 | Desplazamiento 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 derecha | 53 >> 2 | 13 | Desplazamiento 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 signo | 84 >>> 2 | 21 | Desplazamiento 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á 100000000000000002 que 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 11112 por 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
- public class OperatorExample{
- public static void main(String args[]){
- System.out.println(10<<2);//10*2^2=10*4=40
- System.out.println(10<<3);//10*2^3=10*8=80
- System.out.println(20<<2);//20*2^2=20*4=80
- System.out.println(15<<4);//15*2^4=15*16=240
- }}
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
- public OperatorExample{
- public static void main(String args[]){
- System.out.println(10>>2);//10/2^2=10/4=2
- System.out.println(20>>2);//20/2^2=20/4=5
- System.out.println(20>>3);//20/2^3=20/8=2
- }}
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.
- public class OperatorExample{
- public static void main(String args[]){
- //For positive number, >> and >>> works same
- System.out.println(20>>2);
- System.out.println(20>>>2);
- //For negative number, >>> changes parity bit (MSB) to 0
- System.out.println(-20>>2);
- System.out.println(-20>>>2);
- }}
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.
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.