1. 程式人生 > 其它 >二進位制與十進位制間的轉換方法(圖文教程)

二進位制與十進位制間的轉換方法(圖文教程)

原文: 二進位制與十進位制間的轉換方法(圖文教程)


一、正整數十進位制轉換二進位制:
要點:除二取餘,倒序排列
解釋:將一個十進位制數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取將除得的餘數,即換算為二進位制數的結果
例如把52換算成二進位制數,計算結果如圖:


52除以2得到的餘數依次為:0、0、1、0、1、1,倒序排列,所以52對應的二進位制數就是110100。
由於計算機內部表示數的位元組單位都是定長的,以2的冪次展開,或者8位,或者16位,或者32位....。
於是,一個二進位制數用計算機表示時,位數不足2的冪次時,高位上要補足若干個0。本文都以8位為例。那麼:
(52)10=(00110100)2




二、負整數轉換為二進位制


要點:(正數除二取餘,倒序排列)取反加一
解釋:將該負整數對應的正整數先轉換成二進位制,然後對其取補,再對取補後的結果加1即可
例如要把-52換算成二進位制:
1.先取得52的二進位制:00110100
2.對所得到的二進位制數取反:11001011
3.將取反後的數值加一即可:11001100
即:(-52)10=(11001100)2




三、小數轉換為二進位制
要點:(小數)乘二取整,正序排列
解釋:對被轉換的小數乘以2,取其整數部分(01)作為二進位制小數部分,取其小數部分,再乘以2,又取其整數部分作為二進位制小數部分,然後取小數部分,再乘以2,直到小數部分為0或者已經去到了足夠位數。每次取的整數部分,按先後次序排列,就構成了二進位制小數的序列

例如把0.2轉換為二進位制,轉換過程如圖:


0.2乘以2,取整後小數部分再乘以2,運算4次後得到的整數部分依次為0、0、1、1,結果又變成了0.2,
若果0.2再乘以2後會迴圈剛開始的4次運算,所以0.2轉換二進位制後將是0011的迴圈,即:
(0.2)10=(0.0011 0011 0011 .....)2
迴圈的書寫方法為在迴圈序列的第一位和最後一位分別加一個點標註



四、二進位制轉換為十進位制:

整數二進位制用數值乘以2的冪次依次相加,小數二進位制用數值乘以2的負冪次然後依次相加!

比如將二進位制110轉換為十進位制:
首先補齊位數,00000110,首位為0,則為正整數,那麼將二進位制中的三位數分別於下邊對應的值相乘後相加得到的值為換算為十進位制的結果



如果二進位制數補足位數之後首位為
1,那麼其對應的整數為負,那麼需要先取反然後再換算
比如11111001,首位為1,那麼需要先對其取反,即:-00000110
00000110,對應的十進位制為6,因此11111001對應的十進位制即為-6
換算公式可表示為:
11111001=-00000110
=-6

如果將二進位制0.110轉換為十進位制:
將二進位制中的三位數分別於下邊對應的值相乘後相加得到的值為換算為十進位制的結果