JavaScript 24 · v2

这是一篇旧文,其中的内容可能已经过时。

本文的主题不是用 JavaScript 来解决传统的算 24 问题,而是介绍一种新发明的、更有挑战性的算 24 游戏 :) 。

由于位运算的引入,很多原先不可解的问题得到了解决,例如:

// 1, 0, 0, 6
0o60\>\>1 // = 24
// 7, 7, 7, 7
7*7\>\>7/7 // = 24

每组数的解法可能有很多种,其中长度最短者为优。

运算符介绍与提示

运算符类型用途例子备注
+二元运算符求和3+2 = 5
-二元运算符求差3-2 = 1
*二元运算符求积3*2 = 6
/二元运算符求商3/2 = 1.50 不宜作除数
%二元运算符求模3%2 = 10 不宜作除数
~一元运算符/位运算符按位反~3 = -4~p = -p-1
&二元运算符/位运算符按位与3&2 = 2
|二元运算符/位运算符按位或3|2 = 3
^二元运算符/位运算符按位异或3^2 = 1
\<\<二元运算符/位运算符左移3\<\<2 = 12p<<q = p*2q
\>\>二元运算符/位运算符右移3\>\>2 = 0p>>q = p/2q(整数除法)
0o特殊字八进制数的首位0o30 = 24须消耗一个 0
0x特殊字十六进制数的首位0x30 = 48须消耗一个 0