如何求一個數的二進制的值


在學校的時候,教科書上教過如何求得一個數的二進制如何表示,但是求解過程有啰嗦又麻煩。

我用我自己的方法,這個方法比較笨,但是夠簡單。

十進制整數如何轉化為二進制數

           算法很簡單。

    舉個例子,11表示成二進制數:

                     11/2=5   余   1

                       5/2=2   余   1

                       2/2=1   余   0

                       1/2=0   余   1

                          得0結束        

    11的二進制表示為(從下往上):1011

這里提一點:只要遇到除以后的結果為0了就結束了,大家想一想,所有的整數除以2是不是一定能夠最終得到0。換句話說,所有的整數轉變為二進制數的算法會不會無限循環下去呢?絕對不會,整數永遠可以用二進制精確表示 ,但小數就不一定了。

十進制小數如何轉化為二進制數

  算法是乘以2直到沒有了小數為止。

  舉個例子,0.9表示成二進制數

        0.9*2=1.8   取整數部分  1

                     0.8(1.8的小數部分)*2=1.6    取整數部分  1

                     0.6*2=1.2   取整數部分  1

                     0.2*2=0.4   取整數部分  0

                     0.4*2=0.8   取整數部分  0

                     0.8*2=1.6   取整數部分  1

                     0.6*2=1.2   取整數部分  0

                    .........      0.9二進制表示為(從上往下): 1100100100100......

           注意:上面的計算過程循環了,也就是說*2永遠不可能消滅小數部分,這樣算法將無限下去。很顯然,小數的二進制表示有時是不可能精確的 。其實道理很簡單,十進制系統中能不能准確表示出1/3呢?同樣二進制系統也無法准確表示1/10。這也就解釋了為什么浮點型減法出現了"減不盡"的精度丟失問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM