Question

Possible en double: équivalent de Java opérateurs de décalage triple (>>> et <<< ) en C #?

Java a l'opérateur >>> et <<< qui sont un autre bit puis >> et << - quelqu'un peut me donner son équivalent en C #

Était-ce utile?

La solution

Le plus simple (ou au moins la plus logique) est équivalent efficacement une distribution non contrôlée à l'équivalent type non signé, suivie d'un quart de travail normal, puis éventuellement une fonte à nouveau:

// To perform int result = x >>> 5;
int x = -10;

uint u = unchecked ((uint) x);
u = u >> 5;

int result = unchecked ((int) u);

(La partie non contrôlée est pertinent que si vous êtes par ailleurs dans un contexte contrôlé, bien sûr.)

Dans mon expérience, les temps où vous normalement à utiliser >>> en Java, vous devriez simplement utiliser les types non signés pour commencer en C #.

Autres conseils

Il n'y a pas c # équivalent, si vous utilisez une valeur non signée sur la gauche, >> en C # effectuera la même fonction que >>> en java.

Vous devez donc CAST pour obtenir l'effet désiré.

Java a >>> (Je ne pense qu'il ya un opérateur <<<) qui est l'opérateur de décalage droit non signé qui ne figure pas dans c #. Il est là en Java java n'a pas non signé des types de données. En c # il suffit d'utiliser un type non signé avec l'opérateur >>.

>>> est une des opérations de décalage non signé en Java.

Ils n'ont un équivalent en C # parce que C # prend en charge des entiers non signés et vous pouvez donc simplement passer sur ceux-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top