2008년 10월 20일 월요일

(byte)(0xff & (val >> 24)) 의 의미

(byte)0xff & (val >> 24), (byte)0xff & (val >> 16), (byte)0xff & (val >> 8)

답변 :
int는 4 byte로 구성됩니다.

byte 배열로 바꾸려면 int 값을 네 부분으로 나누어야겠죠.

예를 들어 int 값을 2진수로 표현했을 때

val = 10101110 10101010 11101010 10101111 (2) 일 때

val >> 24 = 10101110 (2) 이고 이 경우에는 0xFF 와 &를 취할 필요가 없죠.

val >> 16 = 10101110 10101010 (2) 이기 때문에 뒤의 8 비트를 남겨야 하니까
0xFF와 &을 취합니다. (val >> 16) && 0xff = 10101010 (2) 입니다.

val >> 8 = 10101110 10101010 11101010 (2) 에서 뒤의 8 비트를 남기기 위하여
0xFF와 & 를 취합니다. (val >> 24) && 0xff = 11101010 (2) 입니다.


출처: 네이버 지식인


댓글 없음:

댓글 쓰기