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

alert(parseInt("101101", 2))

运行代码

function toBin(intNum) { var answer = ""; if(/\d+/.test(intNum)) { while(intNum != 0) { answer = Math.abs(intNum%2)+answer; intNum = parseInt(intNum/2); } if(answer.length == 0) answer = "0"; return answer; } else { return 0; } } alert(toBin(45))

运行代码

function toBin(dec) { var bits = []; var dividend = dec; var remainder = 0; while (dividend >= 2) { remainder = dividend % 2; bits.push(remainder); dividend = (dividend - remainder) / 2; } bits.push(dividend); bits.reverse(); return bits.join(""); } alert(toBin(45))

运行代码


      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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值