Datentypen und Verwendung von Funktionen zur Manipulation von Bits in int/long

0xF
0x0F
0x000F

sind alles dieselben Konstanten.

wenn ich 0101 1010 0011 habe ergibt "& 0x00F" richtig "0011" -> wenn das in eine "Byte"-Variable geht sind die nicht gesetzten Stellen automatisch "0" oder werden sie nur nicht verändert, muss ich also "byte a" zuvor wieder "a = 0" resetten?

Wenn du a als byte definierst, hat es 8 Bit und die Zuweisung a = x & 0x00F; // verändert alle 8 bit
egal was vorher drin stand.

Wenn du nur einzelne Bytes eines int oder long manipulieren wolltest, müsstest du besondere Klimmzüge machen.