ì¤ë¥¸ìª½ ìíí¸ (>>)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
ì¤ë¥¸ìª½ ìíí¸ (>>) ì°ì°ìë 첫 ë²ì§¸ í¼ì°ì°ìì ì´ì§ ííì ì§ì ë ë¹í¸ ìë§í¼ ì¤ë¥¸ìª½ì¼ë¡ ì´ëìí¨ ì«ìë BigInt를 ë°íí©ëë¤. ì¤ë¥¸ìª½ì¼ë¡ ë°ë ¤ëê° ì´ê³¼ ë¹í¸ë¤ì ë²ë ¤ì§ê³ , ì¼ìª½ ë ë¹í¸ì ë³µì¬ë³¸ì´ ì¼ìª½ììë¶í° ì±ìì§ëë¤. ì´ ì°ì°ì "ë¶í¸ ì í ì¤ë¥¸ìª½ ìíí¸" ëë "ì°ì ì ì¤ë¥¸ìª½ ìíí¸"ë¼ê³ ë ë¶ë¦¬ëë°, ê·¸ ì´ì ë ê²°ê³¼ê°ì ë¶í¸ê° 첫 ë²ì§¸ í¼ì°ì°ìì ë¶í¸ì ê°ê¸° ë문ì
ëë¤.
ìëí´ ë³´ê¸°
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
const c = -5; // 11111111111111111111111111111011
console.log(a >> b); // 00000000000000000000000000000001
// Expected output: 1
console.log(c >> b); // 11111111111111111111111111111110
// Expected output: -2
구문
x >> y
ì¤ëª
>> ì°ì°ìë ë ê°ì§ íì
ì í¼ì°ì°ìì ëí´ ì¤ë²ë¡ëëì´ ììµëë¤. numberì BigInt. ì«ìì ê²½ì° ì°ì° ê²°ê³¼ë 32ë¹í¸ ì ìì´ë©°, BigIntì ê²½ì° BigInt를 ë°íí©ëë¤. ì´ ì°ì°ìë 먼ì ë í¼ì°ì°ì를 ì«ìíì¼ë¡ ê°ì ë³íí ë¤, ê°ê°ì íì
ì ê²ì¬í©ëë¤. ë í¼ì°ì°ìê° ëª¨ë BigIntê° ëë©´ BigInt ì°ì¸¡ ìíí¸ë¥¼ ìííê³ , ê·¸ë ì§ ìì¼ë©´ ë í¼ì°ì°ì를 32ë¹í¸ ì ìë¡ ë³íí í ì«ì ì°ì¸¡ ìíí¸ë¥¼ ìíí©ëë¤. í쪽ì BigIntë¡, ë¤ë¥¸ í쪽ì numberë¡ ë³íë ê²½ì° TypeErrorê° ë°ìí©ëë¤.
ìë¡ì´ ìµìì ë¹í¸ê° ì´ì ìµìì ë¹í¸ì ê°ì ê°ì ê°ì§ë¯ë¡, ë¶í¸ ë¹í¸(ìµìì ë¹í¸)ë ë³ê²½ëì§ ììµëë¤. ë°ë¼ì "ë¶í¸ ì í"ë¼ë ì´ë¦ì´ ë¶ììµëë¤.
ì´ ì°ì°ìë ì¼ìª½ í¼ì°ì°ìì ë¹í¸ ííì 2ì ë³´ìë¡ ì²ë¦¬í©ëë¤. 10ì§ì(기ì 10) ì«ì 9ì -9ì 32ë¹í¸ ì´ì§ ííì ê³ ë ¤í©ëë¤.
9 (기ì 10): 00000000000000000000000000001001 (기ì 2)
-9 (기ì 10): 11111111111111111111111111110111 (기ì 2)
ìì 10ì§ì ì«ì -9ì 2ì ë³´ì ì´ì§ ííì ê·¸ ë°ë ì«ìì¸ 9(00000000000000000000000000001001)ì 모ë ë¹í¸ë¥¼ ë°ì ìí¤ê³ 1ì ëí´ íì±ë©ëë¤.
ë ê²½ì° ëª¨ë ì´ì§ìì ë¶í¸ë ê°ì¥ ì¼ìª½ ë¹í¸ë¡ ê²°ì ë©ëë¤. ìì 10ì§ì ì«ì 9ì ê²½ì° ì´ì§ ííì ê°ì¥ ì¼ìª½ ë¹í¸ë 0ì´ê³ , ìì 10ì§ì ì«ì -9ì ê²½ì° ì´ì§ ííì ê°ì¥ ì¼ìª½ ë¹í¸ë 1ì
ëë¤.
ìì ì ìí 10ì§ì(기ì 10) ì«ì 9ì -9ì ì´ì§ ííì 기ì¤ì¼ë¡ í©ëë¤.
9 >> 2ì ê²°ê³¼ë 2:
9 (기ì 10): 00000000000000000000000000001001 (기ì 2)
--------------------------------
9 >> 2 (기ì 10): 00000000000000000000000000000010 (기ì 2) = 2 (기ì 10)
ì¤ë¥¸ìª½ ë ë ë¹í¸ 01ê° ë°ë ¤ ëê° ê²ì íì¸í ì ìì¼ë©°, ì¼ìª½ìì ìµìì ë¹í¸ 0 ë ê°ê° ë³µì¬ëì´ ë¤ì´ì¨ ê²ì ì ì ììµëë¤.
-9 >> 2ì ê²°ê³¼ë -3:
-9 (기ì 10): 11111111111111111111111111110111 (기ì 2)
--------------------------------
-9 >> 2 (기ì 10): 11111111111111111111111111111101 (기ì 2) = -3 (기ì 10)
ì¤ë¥¸ìª½ ë ë ë¹í¸ 11ê° ë°ë ¤ ëê° ê²ì íì¸í ì ììµëë¤. ê·¸ë¬ë ìµìì ë¹í¸ë¥¼ ë³´ë©´, ì´ ê²½ì° ìµìì ë¹í¸ë 1ì
ëë¤. ë°ë¼ì ê·¸ ìµìì 1 ë¹í¸ ë ê°ê° ì¼ìª½ìì ë°ë ¤ ë¤ì´ì ìì ë¶í¸ê° ì ì§ë©ëë¤.
ì´ì§ íí 11111111111111111111111111111101ë ìì 10ì§ì ì«ì -3ê³¼ ê°ìµëë¤. 모ë ìì ì ìë 2ì ë³´ìë¡ ì ì¥ëë©°, ì´ ê°ì ìì 10ì§ì ì«ì 3(00000000000000000000000000000011)ì ì´ì§ ííì 모ë ë¹í¸ë¥¼ ë°ì ìí¤ê³ 1ì ëíì¬ ê³ì°í ì ììµëë¤.
ë§ì½ ì¼ìª½ í¼ì°ì°ìê° 32ë¹í¸ë¥¼ ì´ê³¼íë ì«ìë¼ë©´, ìµìì ë¹í¸ê° ë²ë ¤ì§ëë¤. ì를 ë¤ì´, ë¤ìê³¼ ê°ì´ 32ë¹í¸ë¥¼ ì´ê³¼íë ì ìë 32ë¹í¸ ì ìë¡ ë³íë©ëë¤.
ë³í ì : 11100110111110100000000000000110000000000001 ë³í í: 10100000000000000110000000000001
ì¤ë¥¸ìª½ í¼ì°ì°ìë ë¶í¸ ìë 32ë¹í¸ ì ìë¡ ë³íë í 32ë¡ ëë ë머ì§ë¥¼ ì·¨íê² ëë¯ë¡, ì¤ì ìíí¸ ì¤íì
ì íì 0ìì 31 ì¬ì´ì ìì ì ìê° ë©ëë¤. ì를 ë¤ì´, 100 >> 32ë 100 >> 0ê³¼ ê°ì¼ë©° ê²°ê³¼ë 100ì´ ë©ëë¤. ì´ë 32를 32ë¡ ëë ë머ì§ê° 0ì´ê¸° ë문ì
ëë¤.
ê²½ê³ :
ì¬ëë¤ì´ ì«ì를 ì ìë¡ ìë¼ë´ê¸° ìí´ >> 0ì ì¬ì©íë ê²ì ë³¼ ì ììµëë¤. ì´ë¤ ì«ì x를 0ë§í¼ ì¤ë¥¸ìª½ ìíí¸íë©´ xê° 32ë¹í¸ ì ìë¡ ë³íëë©°, -2147483648ìì 2147483647 ë²ì를 ë²ì´ëë ì«ìì ìµìì ë¹í¸ê° ì ê±°ë©ëë¤. ëì Math.trunc()를 ì¬ì©íì¸ì.
BigIntì ê²½ì° ìë¦¼ì´ ììµëë¤. ê°ë
ì ì¼ë¡, ìì BigIntë 무íí ë§ì ì í 0 ë¹í¸ë¥¼ ê°ì§ ê²ì¼ë¡ ì´í´íê³ , ìì BigIntë 무íí ë§ì ì í 1 ë¹í¸ë¥¼ ê°ì§ ê²ì¼ë¡ ì´í´íë©´ ë©ëë¤.
ìì
>ì¤ë¥¸ìª½ ìíí¸ ì¬ì©í기
9 >> 2; // 2
-9 >> 2; // -3
9n >> 2n; // 2n
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-signed-right-shift-operator > |