左移 (<<)
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
左移æä½ç¬¦ (<<) å°ç¬¬ä¸ä¸ªæä½æ°åå·¦ç§»å¨æå®ä½æ°ï¼å·¦è¾¹è¶
åºç使°å°ä¼è¢«æ¸
é¤ï¼å³è¾¹å°ä¼è¡¥é¶ã
å°è¯ä¸ä¸
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
console.log(a << b); // 00000000000000000000000000010100
// Expected output: 20
è¯æ³
a << b
æè¿°
左移æä½ç¬¦å°ç¬¬ä¸ä¸ªæä½æ°åå·¦ç§»å¨æå®ä½æ°ï¼å·¦è¾¹è¶ åºç使°å°ä¼è¢«æ¸ é¤ï¼å³è¾¹å°ä¼è¡¥é¶ã
ä¾å¦ï¼ 9 << 2 å¾åº 36ï¼
js
9 (åè¿å¶): 00000000000000000000000000001001 (äºè¿å¶)
--------------------------------
9 << 2 (åè¿å¶): 00000000000000000000000000100100 (äºè¿å¶) = 36 (åè¿å¶)
ç§»å¨ä»»ææ°å x è³å·¦è¾¹ y ä½ï¼å¾åº x * 2 ** yã
æä»¥ä¾å¦ï¼9 << 3 çä»·äº 9 * 2³ = 9 * 8 = 72ã
示ä¾
>使ç¨å·¦ç§»
js
9 << 3; // 72
// 9 * 2³ = 9 * 8 = 72
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-left-shift-operator> |