Jak się to oblicza ? :
-1613953586 ^ -1613953587 = 3
-1800010067 ^ -1800010068 = 1
operator ^ - dlaczego taki wynik?
Wątek przeniesiony 2016-05-25 12:49 z C# i .NET przez ŁF.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 66
- Rejestracja: dni
- Ostatnio: dni
- Postów: 66
fasadin napisał(a):
https://www.google.nl/search?q=operator+%5E+C%23&oq=operator+%5E+C%23&aqs=chrome..69i57.2952j0j1&sourceid=chrome&ie=UTF-8
https://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
No tak ale w moich przykładach jest liczba int a nie liczba binarna czy logiczna. Na moje oko to powinno w dwóch przypadkach zwrócić 1 i 1 a nie 3 i 1
Jeszcze kilka przykładów mam i tam gdzie jest różnica ostatniej liczby 3 to zwraca 3 a w powyższym przykładzie różnica to 1
Dobra już chyba załapałem... Program najpierw przekształca liczbę na binarną a potem zwraca normalną z binarnej
- Rejestracja: dni
- Ostatnio: dni
No tak ale w moich przykładach jest liczba int a nie binarna>
Co masz w komputerze, dzieci liczące na palcach?
For integral types, ^ computes the bitwise exclusive-OR of its operands
- Rejestracja: dni
- Ostatnio: dni
- Postów: 957
"Liczba int" to pod spodem po prostu ciąg bitów i operacja "and" wykonywana jest na każdym z tych bitów.
255^256 = 511
Chociaż różnica między nimi to tylko 1.
- Rejestracja: dni
- Ostatnio: dni
-1613953586 ^ -1613953587 = 3
Jeżeli liczby traktować jako 32-bitowe w kodowaniu U2, to mamy
10011111110011010000010111001110
xor 10011111110011010000010111001101
------------------------------------
00000000000000000000000000000011
ale w moich przykładach jest liczba int a nie liczba binarna czy logiczna
Operator ^ działa na systemie binarnym.