十進制 轉換為 二進制


  聽說優酷前端面試有問進制數轉換的,甚至是負正整數轉換為二進制,那就索性一次整個明白~

   原文來自:http://jingyan.baidu.com/article/597a0643614568312b5243c0.html

十進制轉成二進制主要有以下3種:

  正整數轉二進制、負整數轉二進制、小數轉二進制

1、  正整數轉成二進制。

  口訣:除二取余,倒序排列,高位補零。

  舉個栗子:42轉化為二進制(本來打算自己畫張圖的,太麻煩,直接粘百度到的圖吧~)

    

   42 除以2得到的余數(右邊)為010101,然后倒着排一下就是取到的二進制了(如下圖)

  

  計算機內部表示數的字節單位是定長的,如8位,16位,或32位。所以,位數不夠時,高位補零,所說,如圖3所示,42轉換成二進制以后就是。00101010,也即規范的寫法為(42)10=(00101010)2

  

 

 2、  負正整數轉成二進制。

    先是將對應的正整數轉換成二進制后,對二進制取反,然后對結果再加一。還以42為例,負整數就是-42,如圖4所示為方法解釋。最后即為:(-42)10=(11010110)2.

   

 

 2、  小數轉成二進制。

   對小數點以后的數乘以2,有一個結果吧,取結果的整數部分(不是1就是0嘍),然后再用小數部分再乘以2,再取結果的整數部分……以此類推,直到小數部分為0或者位數已經夠了就OK了。然后把取的整數部分按先后次序排列就OK了,就構成了二進制小數部分的序列,舉個例子吧,比如0.125,如圖5所示。

  

  如果小數的整數部分有大於0的整數時該如何轉換呢?如以上整數轉換成二進制,小數轉換成二進制,然后加在一起就OK了,如圖6所示。

  

 

 

二進制轉成十進制:

  

首先將二進制數補齊位數,首位如果是0就代表是正整數,如果首位是1則代表是負整數。

        先看首位是0的正整數,補齊位數以后,將二進制中的位數分別將下邊對應的值相乘,然后相加得到的就為十進制,比如1010轉換為十進制,方法如圖7所示。

  

  

  若二進制補足位數后首位為1時,就需要先取反再換算:例如,11101011,首位為1,那么就先取反吧:-00010100,然后算一下10100對應的十進制為20,所以對應的十進制為-20,方法如圖8所示。

  二進制如何轉十進制,十進制如何轉二進制

 

  有小數的二進制轉換為十進制:例如0.1101轉換為十進制的方法:將二進制中的四位數分別於下邊(如圖9所示)對應的值相乘后相加得到的值即為換算后的十進制。

  

 


免責聲明!

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



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