ãããæä»çè«çå (^)
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 ã§ãããããã®ä½ç½®ã« 1 ãããã以å¤ã®ãããã®ä½ç½®ã« 0 ãè¨å®ããäºé²æ°è¡¨ç¾ãæã¤æ°å¤ã¾ãã¯é·æ´æ°ãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const a = 5; // 00000000000000000000000000000101
const b = 3; // 00000000000000000000000000000011
console.log(a ^ b); // 00000000000000000000000000000110
// äºæ³ãããçµæ: 6
æ§æ
x ^ y
解説
^ æ¼ç®åã¯ãæ°å¤ã¨é·æ´æ°ã® 2 種é¡ã®ãªãã©ã³ãã«å¯¾ãã¦ãªã¼ãã¼ãã¼ãããã¦ãã¾ããæ°å¤ã®å ´åããã®æ¼ç®å㯠32 ãããæ´æ°ãè¿ãã¾ããé·æ´æ°ã®å ´åãæ¼ç®åã¯é·æ´æ°ãè¿ãã¾ããæåã®ãªãã©ã³ããæ°å¤åã«å¤æãããã®åãæ¤æ»ãã¾ãããªãã©ã³ããé·æ´æ°ã«ãªã£ãå ´åãé·æ´æ°ã® XOR ãå®è¡ãã¾ããããã§ãªãå ´åããªãã©ã³ãã 32 ãããæ´æ°ã«å¤æããæ°å¤ã®ãããåä½ã® XOR ãå®è¡ãã¾ãããã䏿¹ã®ãªãã©ã³ããé·æ´æ°ã«ãªãããã䏿¹ãæ°å¤ã«ãªãå ´åã¯ã TypeError ãçºçãã¾ãã
ãã®æ¼ç®åã¯ããªãã©ã³ãã®ããã表ç¾ã 2 ã®è£æ°ã§æä½ãã¾ããæåã®ãªãã©ã³ãã®ããããã®ãããã¯ã対å¿ãã 2 ã¤ç®ã®ãªãã©ã³ãã®ãããã¨ã 1 çªç®ã®ãããå士ã 2 çªç®ã®ãããå士ã¨ããããã«ãã¢ã«ãªãã¾ããæ¼ç®ã¯ããããã®ãããã®ãã¢ã«é©ç¨ãããçµæã¯ãããåä½ã§æ§ç¯ããã¾ãã
XOR æ¼ç®ã®ççå¤è¡¨ã¯æ¬¡ã®ããã«ãªãã¾ãã
| x | y | x XOR y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
9 (10 鲿°) = 00000000000000000000000000001001 (2 鲿°)
14 (10 鲿°) = 00000000000000000000000000001110 (2 鲿°)
--------------------------------
14 ^ 9 (10 鲿°) = 00000000000000000000000000000111 (2 鲿°) = 7 (10 鲿°)
ãªãã©ã³ã㯠32 ãããã®æ´æ°å¤ã«å¤æãããããã (ã¼ãã¾ã㯠1) ã®ä¸¦ã³ã«ãã£ã¦è¡¨ç¾ããã¾ãã32 ããããè¶ ããæ°å¤ã¯æä¸ä½ã®ããããç ´æ£ããã¾ããä¾ãã°ã次㮠32 ããããè¶ ããæ´æ°ã¯ 32 ãããæ´æ°ã«å¤æããã¾ãã
夿å: 11100110111110100000000000000110000000000001 夿å¾: 10100000000000000110000000000001
è¦å:
æ°å¤ãæ´æ°ã«åãè©°ããããã« ^ 0 ã使ç¨ãã人ãç®ã«ããããããã¾ãããä»»æã®æ°å¤ x ã« 0 ã§ãããåä½ã® XOR ãè¡ãã¨ã x ã 32 ãããæ´æ°ã«å¤æããå¤ãå¾ããã¾ããã -2147483648 ãã 2147483647 ã®ç¯å²å¤ã«ããå¤ã«ã¤ãã¦ã¯ãå
é ã®ããããé¤å»ããããã¨ã«ãªãã¾ãã代ããã« Math.trunc() ã使ç¨ãããã使ç¨ãã¦ãã ããã
é·æ´æ°ã®å ´åãåãæ¨ã¦ã¯çºçãã¾ãããæ¦å¿µçã«ã¯ãæ£ã®å¤ã®é·æ´æ°ã¯å
é ã«ç¡éã® 0 ãããããããè² ã®å¤ã®é·æ´æ°ã¯å
é ã«ç¡éã® 1 ãããããããã®ã¨çè§£ãã¦ãã ããã
ä¾
>ãããæä»çè«çåã®ä½¿ç¨
// 9 (00000000000000000000000000001001)
// 14 (00000000000000000000000000001110)
14 ^ 9;
// 7 (00000000000000000000000000000111)
14n ^ 9n; // 7n
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # prod-BitwiseXORExpression> |