javascript十進位轉二進位,二進位轉十進位

來源:互聯網
上載者:User

<br />alert(parseInt("101101", 2))<br />

運行代碼

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

運行代碼

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

運行代碼

      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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.