XOR Byte

0

Witam,

Czy może mi ktoś wyjaśnić dlaczego:

    byte a =7
    byte b = -15
    byte c = a^b

c jest równe -10 ? a nie -8

[0, 0, 0, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 1, 1, 1, 1]
[1, 0, 0, 0, 1, 0, 1, 0]

Z tego co wyczytałem to podobno zwraca int'a...

0
System.out.println((a^b).getClass().getName())

daje:

java.lang.Integer
0

*sorry że nie dopisuje, ale chyba najwyższy czas założyć konto:)

Pomimo tego że zwraca int to nie znaczy że mam sam implementować operacje typu XOR, AND, itp na byte...
Zapewne nie jest to za trudne, ale niesmak pozostał... chyba że o czymś nie wiem? Z góry dzięki!

0
		byte a = 7;
		byte b = -15;
		byte c = (byte) (a^b);
		System.out.println((byte) (c^a));
		System.out.println((byte) (c^b));
0

w takim razie jak jest zapisywany byte?

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