자바에서 16진수 ff를 의미 ff(16) = 1111 1111(2) = 255(10)
0x11 16진수 11을 의미 11(16) = 0001 0001(2) = 17(10)
ex) int a = 0xff;
System.out.println(a);
출력 : 255
비트연산자 & : 둘다 1이면 1 return
ex) 1001 & 1100 ---> 1000
int a = 150; ---> a = 150(10) = 1001 0110(2)
byte b = (byte) a; ---> b = -106(10) = 1001 0110(2)
System.out.println(b); ---> b = -106(10)
System.out.println(b & 0xff); ---> 150출력
---> 1001 0110 & 1111 1111 = 1001 0110
즉 byte형으로 강제 형변환한 b값은 출력시 -106이 나오지만
0xff와 비트연산후 출력시 기존의 150이 출력된다.