Czy ktoś może mi wyjaśnić dlaczego .net oblicza te różnie JavaVB .NET obliczania inaczej Java
Równanie
(-1646490243 << 4) + 3333^-1646490243 + -957401312^(-1646490243 >> 5) + 4
Java oblicza go jako
151
.Net oblicza się jako
Mój problem polega na tym, że potrzebuję .Net, aby obliczyć to samo, co w Javie, ponieważ przeportowuję się przez funkcję odszyfrowywania, a jeśli oblicza ona inaczej, odszyfrowanie nie będzie poprawne.
Każda pomoc zostanie doceniona.
--Update--
Dzięki chłopaki, XOR było to, co powinno I był używany. Dodatkowo trzeba obejść Javę, nie rzucając wyjątku, gdy liczba całkowita jest zbyt duża.
Xor daje wynik -3121757145
(-1646490243 << 4) + 3333 Xor -1646490243 + -957401312 Xor (-1646490243 >> 5) + 4
połączeniu z odpowiedzią z tego linku znalazłem - Java sum 2 negative numbers. Daje taki sam wynik jak Java
-3121757145 + 2^32 =151
w Javie, '^' 'jest operator XOR'. Nie jestem zaznajomiony z VB, ale niektóre wyszukiwania Google zasugerowały, że 'Xor' jest operatorem xor, a'^'służy do potęgowania w VB. Czy to może być problem? – irrelephant