Ruby's Louvre

每天学习一点点算法

导航

javascript十进制转二进制,二进制转十进制

      alert(2..toString(2))//如果一个点会提示错误 ,引擎无法判断是小数点还是"."操作符,也或者说这里产生了一个"shift-shift confilt"
      alert(2.0.toString(2))
      alert((2).toString(2))

"shift-shift confilt"这个词,从编译原理来的,我当时直接看的E文版,不知道怎么翻译,大致意思是LALR语法分析的时候,需要执行把一个token从输入序列里弹出并压入语法堆栈的动作的时候,这个token有两个或两个以上不同的语义。

对应的,语法分析通常有两个动作,shift和reduce,LR(1)中shift-reduce conflit是可以的,但是shift-shift conflit是不行的。 大致是这样的意思。

0   0   0   1   0   1   0   0
//这个口算可以得出 1是第3位  那么就是  2^(3-1)=4 前面第1个1是第5位 那么就是2^(5-1)=16 结合起来就是 4+16=20

posted on 2009-11-23 12:36  司徒正美  阅读(8936)  评论(1编辑  收藏  举报