Что такое эквивалент С# оператора без сдвига Java без сдвига >>>

Я пытаюсь преобразовать код Java в С#. Как можно выполнить следующую операцию без знака сдвига вправо > на С#?

int src1, src2, ans;
ans = src1 >>> src2;

Ответы

Ответ 1

Вам нужно бросить сначала, нет одного оператора для → > , пример кода:

 int x = -100;
 int y = (int)((uint)x >> 2);
 Console.WriteLine(y);

Ответ 2

Оператор

С# >> чувствителен к статусу, подписанному оператором (int vs uint). Если вам нужно работать с int, сначала выберите unit.

Ответ 3

Я думаю, что это просто " > , независимо от того, подписан он или нет, зависит от того, является ли это int/long или uint/ulong, поэтому вы необходимо будет при необходимости приложить

Ответ 4

вы можете использовать этот метод вместо оператора >>>.

int src1, src2, ans;
ans = rightMove(src1 , src2);

        int rightMove(int value, int pos)
        {
            if (pos != 0)
            {
                int mask = 0x7fffffff;
                value >>= 1;
                value &= mask;
                value >>= pos - 1;
            }
            return value;
        }