1. ¿¬»êÀÚ: << >>
2. Çü ½Ä: operand1 << operand2
operand1 >> operand2
3. ¼³ ¸í: operand1¿¡ ´ëÇÑ 2Áø ¼öÄ¡¸¦ operand2ȸ ¿ÞÂÊ ¶Ç´Â ¿À¸¥ÂÊÀ¸·Î
À̵¿ ½ÃŲ´Ù. ÇÇ¿¬»êÀÚ°¡ ½Ç¼ö(¼Ò¼ö ¾Æ·¡°¡ ÀÖ´Â ¼ö)ÀÏ °æ¿ì¿¡
Á¤¼ö·Î º¯È¯(¼Ò¼ö ¾Æ·¡ Àý»è)ÇÏ¿© ó¸®ÇÑ´Ù. Shift ¿¬»êÀÚ¸¦
Á¢ÇÒ ¶§¿¡´Â ÇÇ¿¬»êÀÚ¿¡ ´ëÇÑ 2Áø ¼öÄ¡¸¦ »ý°¢ÇÏÁö ¾ÊÀ¸¸é ¾î¶²
°á°ú¸¦ ¾òÀ» °ÍÀÎÁö ¾Ë±â ¾î·Æ´Ù.
-. << ±âÈ£´Â operand1ÀÇ °ªÀ» ¿ÞÂÊÀ¸·Î À̵¿ ÇÑ´Ù.
-. >> ±âÈ£´Â operand1ÀÇ °ªÀ» ¿À¸¥ÂÊÀ¸·Î À̵¿ ÇÑ´Ù.
1) ¿ÞÂÊ Shift (<<)
-. °¢ ºñÆ®¸¦ ¿ÞÂÊÀ¸·Î À̵¿Çϸç ä¿öÁö´Â ÀÚ¸®ÀÇ °ªÀº 0 ÀÌ´Ù.
¾î¶²¼ö NÀ» Rȸ ¿ÞÂÊÀ¸·Î À̵¿Çϸé(N<<R) N * (2ÀÇ R½Â)°ú °°´Ù.
<¿¹Á¦>
int a;
a= 1<<3; // 1 À» ¿ÞÂÊÀ¸·Î 3ȸ À̵¿Çϸé 2Áø¼ö·Î 1000 ÀÌ µÈ´Ù.
// 1ȸ°: 0000 0010 <-- ä¿öÁö´Â ÀÚ¸®ÀÇ °ªÀº 0 ÀÌ´Ù.
// 2ȸ°: 0000 0100
// 3ȸ°: 0000 1000
print(a); // 8 ÀÌ Ãâ·ÂµÇ¸ç (1 * 2**3)°ú °°´Ù.
2) ¿À¸¥ÂÊ Shift (>>)
-. °¢ ºñÆ®¸¦ ¿À¸¥ÂÊÀ¸·Î À̵¿Çϸç ä¿öÁö´Â ÀÚ¸®ÀÇ °ªÀº charÀ϶§´Â 0 ÀÌ°í
±× ¿ÜÀÇ °æ¿ì¿¡´Â ºÎÈ£(¾ç¼ö´Â 0, À½¼ö´Â 1)°ªÀÌ º¹»çµÈ´Ù.
¾î¶²¼ö NÀ» Rȸ ¿À¸¥ÂÊÀ¸·Î À̵¿Çϸé(N>>R) N / (2ÀÇ R½Â)°ú °°´Ù.
<¿¹Á¦>
int a;
a= 8>>1; // 8 À» ¿À¸¥ÂÊÀ¸·Î 1ȸ À̵¿Çϸé 2Áø¼ö·Î 100 ÀÌ µÈ´Ù.
print(a); // 4 °¡ Ãâ·ÂµÇ¸ç (8 / 2**1)°ú °°´Ù.
|