Próbuję przekonwertować niektóre kodu Java do C#. W jaki sposób następujące unsigned right shift operation być reprezentowane w C#?Co to jest odpowiednik C# w Java niepodpisany operator prawej zmiany >>>
int src1, src2, ans;
ans = src1 >>> src2;
Próbuję przekonwertować niektóre kodu Java do C#. W jaki sposób następujące unsigned right shift operation być reprezentowane w C#?Co to jest odpowiednik C# w Java niepodpisany operator prawej zmiany >>>
int src1, src2, ans;
ans = src1 >>> src2;
Trzeba rzucić pierwsze, nie istnieje jeden operator na >>>, przykładowy kod:
int x = -100;
int y = (int)((uint)x >> 2);
Console.WriteLine(y);
>>
operator C# 's jest wrażliwy na podpisanym statusu operatora (int
vs uint
). Jeśli chcesz pracować na urządzeniu int
, najpierw wykonaj rzutowanie na unit
.
myślę, że to właśnie >> czy jest podpisany, czy nie, zależy od tego, czy jest to int/long lub uint/Ulong, więc trzeba by rzucić to konieczne
można użyć tej metody zamiast operatora >>>
.
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;
}
cześć Peer, czy możesz mi powiedzieć równoważne wyrażenie '(hash >>> 0)' w C#? –
Jeśli typ twojego skrótu jest int. To jest to samo. – Peter