'자바공부'에 해당되는 글 18건

  1. [나랑 자바공부 하자17]비트와 관련있는 연산자2

[나랑 자바공부 하자17]비트와 관련있는 연산자2

 

오늘 공부한 자바 내용입니다~

비트 쉬프트에 대해서 공부했어요

비트 쉬프트 연산자로는 << >> >>> 세가지가 있는데요~

하나씩 알아볼까요!

<<   피연산자의 비트 열을 왼쪽으로 이동합니다. 이동에 따른 빈 공간은 0으로!

예 n << 2 ;    - > n의 비트 열을 두칸 왼쪽으로 이동시킨 결과를 나타냅니다.

>>  피연산자의 비트열을 오른쪽으로 이동합니다 당연히 오른쪽 표시가 되잇으니, ㅎ

근데 여기서 주의할 점이 >>로 빈공간이 생긴다면 음수는 그대로 1 양수는 0으로 채웁니다.

>>>  피연산자의 비트열을 오른족으로 이동 어찌보면 >>랑 똑같아 보이는데요

  이 >>>는 이동에 따른 빈 공간을 양수 음수 상관없이 0으로 채웁니다.

 

예제를 보면 좀더 쉽겟죠!

class bitshift

{

public static void main(String[] args)

{

System.out.println(2 << 1) ;  //   00000010 을 <<1칸옴기면 00000100 고로 4출력

System.out.println(2 << 2);  //    00000010 을 <<2칸 옴기면 00001000 출력값은 8

System.out.println(2 << 2); // 00000010 을 <<3칸 옴기면 00010000 출력값은 16

 

System.out.println(8 >> 1); // 4출력이죠 00001000을 >>한칸이동하면 00000100 4

System.out.println(8 >> 2); // 두칸이동한다면 2가 되겟죠?

System.out.println(8 >> 3); // 세칸이면 당연히 1이 되는거죠, 이정도까진 이해가 쉽습니다 네다음

 

System.out.println(-8 >> 1);  //-4가 출력됩니다

System.out.println(-8 >> 2); //-2가 출력됩니다

System.out.println(-8 >> 3); //-1가 출력됩니다

 

System.out.println(-8 >>> 1); // 2147483644 출력된다고하는데요 사실 이거는 계산 안해봤어요 ㅎ

}

}

@@@ >>와  >>>의 차이를 아시겟나용?! >>는 오른쪽으로 밀리면서 음수그대로의 성질을 가지고 잇으니 -4가 되었던 것이고 >>>는 오른쪽으로 1칸이동하면서 맨 앞자리를 0으로 매꾸기때문에 음수가 된 것 입니다 아하하!

 

머리가 아프네요! ㅋㅋ 좀더 공부해야겟어요! 뿅!