Ответ 1
Вам нужно бросить сначала, нет одного оператора для → > , пример кода:
int x = -100;
int y = (int)((uint)x >> 2);
Console.WriteLine(y);
Я пытаюсь преобразовать код Java в С#. Как можно выполнить следующую операцию без знака сдвига вправо > на С#?
int src1, src2, ans;
ans = src1 >>> src2;
Вам нужно бросить сначала, нет одного оператора для → > , пример кода:
int x = -100;
int y = (int)((uint)x >> 2);
Console.WriteLine(y);
С# >>
чувствителен к статусу, подписанному оператором (int
vs uint
). Если вам нужно работать с int
, сначала выберите unit
.
Я думаю, что это просто " > , независимо от того, подписан он или нет, зависит от того, является ли это int/long или uint/ulong, поэтому вы необходимо будет при необходимости приложить
вы можете использовать этот метод вместо оператора >>>
.
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;
}