Próbuję przekonwertować kod Java na C# i działa on bezbłędnie do tej pory, ale napotkałem problem z operatorem ^. W języku C# Console.WriteLine(127^0xffffffff);
drukuje 4294967168 natomiast w języku Java System.out.println(127^0xffffffff);
drukuje -128. Rozglądałem się, aby zobaczyć, czy jest coś innego, czego potrzebuję, ale nie natknąłem się na nic.C# bitowo XOR (^) w porównaniu do Java bitowo XOR (^)
Odpowiedz
C# obsługuje podpisał jak również niepodpisanych liczb całkowitych (Java obsługuje podpisana tylko nich):
unchecked {
// you want signed int
int result = (int) (127^0xffffffff);
Console.WriteLine(result);
}
Prawdziwy problem polega na tym, że 0xffffffff nie może być reprezentowany jako liczba dodatnia w podpisanym int, co powoduje, że jest interpretowane jako unsigned int. '0xff' będzie interpretowane jako int i niepodpisane int. – Voo
Ah! Głupi ja. Dziękuję Ci bardzo! Wybieram to jako odpowiedź, gdy pozwala mi to zająć około 6 minut. – Orion
- 1. Jak przesunąć bitowo w VB.NET?
- 2. W jaki sposób wartość szesnastkowa jest manipulowana bitowo?
- 3. Java i C zmiennoprzecinkowe: "x * x" różni się od "pow (x, 2)"?
- 4. Struct X w Struct X?
- 5. Dlaczego jest x ++ - + - ++ x legal, ale x +++ - +++ x nie jest?
- 6. C - Specyfikator formatu% x
- 7. C# rodzajowych w porównaniu do C++ szablony
- 8. Tworzenie funkcji kwadratowej() bez x * x w C++
- 9. Wpływ x = x + w JavaScript
- 10. Piętro (X) modulo X to X?
- 11. Kiedy jest (x ||! X) fałsz?
- 12. Konieczne pomnożenie jednego rejestru XMM przez inny, ale z wartością zamaskowaną bitowo
- 13. Pisanie w stylu bezramkowym f x = g x x
- 14. Dokonywanie przedmiot x takie, że „x w [x]” zwraca false
- 15. Dla każdego x ... Next Vs. Dla każdego x ... Dalej x
- 16. C: różnica między (int) x a podłogą (x)?
- 17. Różnica między ~ (x-1) i ~ x + 1, gdy x = 0x80000000
- 18. Układ pamięci Golang w porównaniu do C++/C
- 19. osprzętem EPS MATLAB w (x) w C++
- 20. Confused o X w GaussianHMM.fit ([X])
- 21. Znaczenie X = X [:, 1] w Pythonie
- 22. removeAttr (x) vs. attr (x, '') w jQuery
- 23. Konwersja wyniku Math.sin (x) do wyniku dla stopni w java
- 24. klasa X: X <T> {} wzór w języku C# --- do czego służy?
- 25. Różnica sqrt (x) i pow (x 0,5)
- 26. string.charAt (x) lub ciąg [x]?
- 27. Obliczanie pracy wykonanej przez x = f (x, x)
- 28. Uproszczenie if (x == 1 || x == 2)
- 29. Jak działa obserwowalny program rxjs w porównaniu do funkcji $ watch w aplikacji Angularjs 1.X?
- 30. Dlaczego x [i] [:] = x [:] [i] gdzie x to lista list?
Zapomniałem dodać, muszę go wydrukować -128. – Orion
W Javie operandy są promowane do typu 'int', a wynikiem jest' int'. W języku C# operandy są promowane do 'uint', a wynikiem jest' uint'. Odpowiedni odlew powinien się tym zająć. –