符å·ãªãå³ã·ããæ¼ç®å (>>>)
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æ.
符å·ãªãå³ã·ããæ¼ç®å (>>>) ã¯ã 1 ã¤ç®ã®ãªãã©ã³ããæå®ããããããæ°ã ãå³ã«ãããããã¤ããªã¼è¡¨ç¾ãæã¤ãæ°å¤ã¾ãã¯é·æ´æ°ãè¿ãã¾ããå³ã«ãããã¦ããµãããããã¯ç ´æ£ããã 0 ã®ããããå·¦ããããã¦å
¥ãã¾ãããã®æ¼ç®ã¯ãã¼ãåãå³ã·ãããã¨ãå¼ã°ãã¾ãã符å·ãããã 0 ã«ãªããããçµæã®æ°å¤ã¯å¸¸ã«æ£ã®å¤ã¨ãªãããã§ãã符å·ãªãå³ã·ããã¯é·æ´æ°ã®å¤ãåãå
¥ãã¾ããã
試ãã¦ã¿ã¾ããã
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
const c = -5; // 11111111111111111111111111111011
console.log(a >>> b); // 00000000000000000000000000000001
// äºæ³ãããçµæ: 1
console.log(c >>> b); // 00111111111111111111111111111110
// äºæ³ãããçµæ: 1073741822
æ§æ
x >>> y
解説
ä»ã®ç®è¡æ¼ç®åããããæ¼ç®åã¨ã¯ç°ãªãã符å·ãªãå³ã·ããæ¼ç®åã¯é·æ´æ°ã®å¤ãåãå ¥ãã¾ãããããã¯ã左端ã®ããããã¼ãã§åããããã§ãããæ¦å¿µçã«ã¯é·æ´æ°ã¯ç¡éã®æ°ã®å é 符å·ããããæã¤ãããã¼ãã§åããã左端ã®ãããããåå¨ããªãããã§ãã
ãã®æ¼ç®åã¯ãå·¦ãªãã©ã³ãã®ããã表ç¾ã 2 ã®è£æ°ã§æ¼ç®ãã¾ãã 10 鲿°ã® 9 㨠-9 ã® 32 ããã 2 é²è¡¨ç¾ãèãã¦ã¿ã¾ãããã
9 (10 鲿°): 00000000000000000000000000001001 (2 鲿°)
-9 (10 鲿°): 11111111111111111111111111110111 (2 鲿°)
2 ã®è£æ°æ³ã«ãããè² ã® 10 鲿°å¤ -9 ã® 2 é²è¡¨ç¾ã¯ããã®çµ¶å¯¾å¤ã§ãã 9 ï¼2 鲿°ã§ 00000000000000000000000000001001ï¼ã®ãã¹ã¦ã®ããããå転ããã 1 ãå ç®ãããã¨ã§å½¢æãã¾ãã
ã©ã¡ãã®å ´åãã 2 鲿°å¤ã®ç¬¦å·ã¯æå·¦ç«¯ã®ãããã«ãã£ã¦æå®ããã¾ããæ£ã® 10 鲿° 9 ã®å ´åã 2 é²è¡¨ç¾ã®æå·¦ç«¯ããã㯠0 ã§ãããè² ã® 10 鲿° -9 ã®å ´åã 2 é²è¡¨ç¾ã®æå·¦ç«¯ããã㯠1 ã§ãã
10 鲿°ã® 9 㨠-9 ã® 2 é²è¡¨ç¾ãæå®ãããå ´åãè¦ã¦ã¿ã¾ãããã
æ£ã®å¤ 9 ã«å¯¾ãã¦ãã¼ãåãå³ã·ããã¨ç¬¦å·ä¼æå³ã·ãã ã¯åãçµæãè¿ãã¾ãï¼9 >>> 2 㯠2 ãè¿ãã9 >> 2 ã¨åãã«ãªãã¾ãã
9 (10 鲿°): 00000000000000000000000000001001 (2 鲿°)
--------------------------------
9 >> 2 (10 鲿°): 00000000000000000000000000000010 (2 鲿°) = 2 (10 鲿°)
9 >>> 2 (10 鲿°): 00000000000000000000000000000010 (2 鲿°) = 2 (10 鲿°)
å³ç«¯ã® 2 ãããã§ãã 01 ãããã¦å¤ãã 2 ã¤ã®ã¼ããå·¦ããå
¥ãã¨ãããã¨ã«æ³¨ç®ãã¦ãã ããã
ãããã -9 ã§èµ·ãããã¨ã«æ³¨ç®ãã¦ãã ããã -9 >> 2 ï¼ç¬¦å·ä¼æå³ã·ããï¼ã¯ -3 ã«ãªãã¾ããã -9 >>> 2 ï¼ã¼ãåãå³ã·ããï¼ã¯ 1073741821 ã«ãªãã¾ãã
-9 (10 鲿°): 11111111111111111111111111110111 (2 鲿°)
--------------------------------
-9 >> 2 (10 鲿°): 11111111111111111111111111111101 (2 鲿°) = -3 (10 鲿°)
-9 >>> 2 (10 鲿°): 00111111111111111111111111111101 (2 鲿°) = 1073741821 (10 鲿°)
å³ç«¯ã® 2 ãããã§ãã 11 ãããã¦æ¶ãã¦ãããã¨ã«æ³¨ç®ãã¦ãã ããã-9 >> 2ï¼ç¬¦å·ä¼æå³ã·ãã) ã§ã¯ã左端㮠1 ããããå·¦ãã2ã¤ã³ãã¼ããã¦å
¥ã£ã¦ãããããããã«ããè² ã®ç¬¦å·ãä¿æããã¾ãã䏿¹ã-9 >>> 2ï¼ã¼ãåãå³ã·ããï¼ã§ã¯ã代ããã«å·¦å´ããã¼ããå
¥ã£ã¦ããã®ã§ãæ°å¤ã®è² ã®ç¬¦å·ã¯ä¿æããããçµæã¯ï¼å¤§ããªï¼æ£ã®å¤ã¨ãªãã¾ãã
å·¦ãªãã©ã³ãã 32 ããããè¶ ããæ°å¤ã®å ´åãä¸ä½å´ã®ããããç ´æ£ããã¾ããä¾ãã°ã以ä¸ã® 32 ããããè¶ ããæ´æ°ã¯ 32 ãããæ´æ°ã«å¤æããã¾ãã
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
å³ãªãã©ã³ãã¯ç¬¦å·ãªã 32 ãããæ´æ°ã«å¤æããããã®å¾ã¢ã¸ã¥ã 32 ãåããã¾ãããããã£ã¦ãå®éã®ã·ããéã¯å¸¸ã« 0 ä»¥ä¸ 31 以ä¸ã®æ£ã®æ´æ°ã¨ã¿ãªããã¾ããä¾ãã°ã100 >>> 32 㯠100 >>> 0 ã¨åãçµæ (100) ã«ãªãã¾ãããã㯠32 ã¢ã¸ã¥ã 32 ã 0 ã¨ãªãããã§ãã
ä¾
>符å·ãªãå³ã·ããã®ä½¿ç¨
9 >>> 2; // 2
-9 >>> 2; // 1073741821
符å·ãªãå³ã·ããã¯ãé·æ´æ°ã§ã¯åä½ãã¾ããã
9n >>> 2n; // TypeError: BigInts have no unsigned right shift, use >> instead
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-unsigned-right-shift-operator> |