Wątek przeniesiony 2016-05-25 12:49 z C# i .NET przez ŁF.

operator ^ - dlaczego taki wynik?

0

Jak się to oblicza ? :
-1613953586 ^ -1613953587 = 3
-1800010067 ^ -1800010068 = 1

0
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

0

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

0

"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.

0

-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.

0

dzięki za odpowiedzi.

Toż to samych geniuszy z iq > 200 zatrudniają pod przymusem w wojsku żeby zrobić coś takiego jak komputer to ludzkie pojęcie przechodzi :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1