學計算機的朋友剛開始學習時都要接觸進製之間的轉換,二進位制、十進位制、八進位制、十六進製制等,這個是很枯燥的,轉來轉去就轉矇圈了,別蒙別蒙,今天咱們乙個乙個搞定,看看二進位制和十進位制之間如何相互轉換的。
轉成二進位制主要有以下幾種:正整數轉二進位制,負整數轉二進位制,小數轉二進位制;
1、 正整數轉成二進位制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。
也就是說,將正的十進位制數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然後在旁邊標出各步的餘數,最後倒著寫出來,高位補零就ok咧。哎呀,還是舉例說明吧,比如42轉換為二進位制,如圖1所示操作。
42除以2得到的餘數分別為010101,然後咱們倒著排一下,42所對應二進位制就是101010.如圖2所示更直觀的表達。
計算機內部表示數的位元組單位是定長的,如8位,16位,或32位。所以,位數不夠時,高位補零,所說,如圖3所示,42轉換成二進位制以後就是。00101010,也即規範的寫法為(42)10=(00101010)2.趕緊記住吧。
2、 負整數轉換成二進位制
方法:先是將對應的正整數轉換成二進位制後,對二進位製取反,然後對結果再加一。還以42為例,負整數就是-42,如圖4所示為方法解釋。最後即為:(-42)10=(11010110)2.
3、 小數轉換為二進位制的方法:對小數點以後的數乘以2,有乙個結果吧,取結果的整數部分(不是1就是0嘍),然後再用小數部分再乘以2,再取結果的整數部分……以此類推,直到小數部分為0或者位數已經夠了就ok了。然後把取的整數部分按先後次序排列就ok了,就構成了二進位制小數部分的序列,舉個例子吧,比如0.125,如圖5所示。
如果小數的整數部分有大於0的整數時該如何轉換呢?如以上整數轉換成二進位制,小數轉換成二進位制,然後加在一起就ok了,如圖6所示。
4、 整數二進位制轉換為十進位制:首先將二進位制數補齊位數,首位如果是0就代表是正整數,如果首位是1則代表是負整數。
先看首位是0的正整數,補齊位數以後,將二進位制中的位數分別將下邊對應的值相乘,然後相加得到的就為十進位制,比如1010轉換為十進位制,方法如圖7所示。
5、若二進位制補足位數後首位為1時,就需要先取反再換算:例如,11101011,首位為1,那麼就先取反吧:-00010100,然後算一下10100對應的十進位制為20,所以對應的十進位制為-20,方法如圖8所示。
6、將有小數的二進位制轉換為十進位制時:例如0.1101轉換為十進位制的方法:將二進位制中的四位數分別於下邊(如圖9所示)對應的值相乘後相加得到的值即為換算後的十進位制。
二進位制如何轉十進位制,十進位制如何轉二進位制
二進位制如何轉十進位制,十進位制如何轉二進位制 1 正整數轉成二進位制。要點一定一定要記住哈 除二取餘,然後倒序排列,高位補零。也就是說,將正的十進位制數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然後在旁邊標出各步的餘數,最後倒著寫出來,高位補零就ok咧。哎呀,還是舉說明吧,比如42轉...
二進位制轉十進位制
二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...
十進位制轉二進位制
includeint dg unsigned n,int c 注意 引數型別是unsigned int main 陣列全部初始化為0 printf d n sizeof int unsigned temp,u temp u 4294967295u int tu int u printf u u,tu...