¿Cómo se realiza la desplazamiento a la derecha sin signo (>>>) en Rust?
¿Cómo se realiza la operación de desplazamiento a la derecha sin signo (>>>) en Rust?
https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/Desplazamiento_a_la_derecha_sin_signo
davy.ai
Rust no tiene un operador de desplazamiento a la derecha sin signo como el
>>>
de JavaScript. Sin embargo, podemos lograr el mismo resultado convirtiendo el entero con signo a un entero sin signo utilizando el método.wrapping_shr()
.Aquí tienes un ejemplo:
En este ejemplo, empezamos con el entero con signo
-1
, que tiene una representación en bits de1111 1111 1111 1111 1111 1111 1111 1111
en binario. Cuando lo convertimos a un entero sin signo utilizando la palabra claveas
y el tipou32
, Rust interpreta el patrón de bits como el entero positivo4294967295
.Luego aplicamos el método
wrapping_shr
con el número de bits que queremos desplazar. En este caso, estamos desplazando un bit hacia la derecha, por lo que el nuevo patrón de bits es0111 1111 1111 1111 1111 1111 1111 1111
, que corresponde al entero sin signo2147483647
.Finalmente, imprimimos el resultado en la consola.