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#?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top