Java tiene operador >>> y <<< que son un poco diferentes - por favor ayuda [duplicar
-
25-10-2019 - |
Pregunta
Posible duplicado:
Equivalente de los operadores de triple turno de Java (>>> y <<<>) en C#?
Java tiene operador >>> y <<< que son un poco diferentes de entonces >> y << - ¿Alguien puede darme su equivalente en C#?
Solución
El equivalente más simple (o al menos más lógico) es efectivamente un yeso sin control al tipo no firmado equivalente, seguido de un cambio normal y luego potencialmente un lanzamiento nuevamente:
// To perform int result = x >>> 5;
int x = -10;
uint u = unchecked ((uint) x);
u = u >> 5;
int result = unchecked ((int) u);
(La parte sin control solo es relevante si está en un contexto marcado, por supuesto).
En mi experiencia, en los momentos en los que normalmente quiere usar >>>
En Java, solo usarías tipos sin firmar para comenzar en C#.
Otros consejos
No hay C# equivalente, si usa un valor sin firmar a la izquierda, >>
en C# realizará la misma función que >>>
en Java.
Por lo tanto, debe lanzar para obtener el efecto deseado.
Java tiene >>>
(No creo que hay un <<<
Operador) que es el operador de desplazamiento derecho sin firmar que no está presente en C#. Está allí en Java, ya que Java no tiene tipos de datos sin firmar. En C# solo usa un tipo sin firmar con >>
operador.
>>>
es una operación de turno sin firmar en Java.
No tienen un equivalente en C# porque C# admite enteros sin firmar y, por lo tanto, puede cambiarlos.