二進位制和十進位制之間的互相轉換

2021-09-25 16:17:44 字數 1277 閱讀 8516

1.首先用2整除乙個十進位制整數,得到乙個商和餘數

2.然後再用2去除得到的商,又會得到乙個商和餘數

3.重複操作,一直到商為小於1時為止

4.然後將得到的所有餘數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!

假設我們現在需要將42轉為二進位制,那我們怎麼做呢,如下圖所示:

1.用2乘十進位制小數,可以得到積,將積的整數部分取出

2.再用2乘餘下的小數部分,又得到乙個積,再將積的整數部分取出

3.重複操作,直到積中的小數部分為零,此時0或1為二進位制的最後一位,或者達到所要求的精度為止

0.125 * 2 = 0.25 ------0

0.25 * 2 = 0.5 ------0

0.5 * 2 = 1.0 ------1

當小數部分為0就可以停止乘2了,然後正序排序就構成了二進位制的小數部分:0.001

假設要將8.125 轉換為二進位制

現將8轉為二進位制:得到1000

再將0.125轉為二進位制:得到0.001

合併後為1000.001

二進位制轉為十進位制要從右到左用二進位制的每個數去乘以2的相應次方,小數點後則是從左往右。

如果首位是0就表示正整數,如果首位是1則表示負整數,正整數可以直接換算,負整數則需要先取反再換算。

因為計算機內部表示數的位元組單位是定長的。如8位、16位、32位。所以位數不夠時,高位補零。

*如要想二進位制00101010轉為十進位制,因為以0開頭,所以這是正整數,計算如下所示:

(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42

如果11101011想轉為十進位制,因為是1開頭,所以先取反 - 00010100,然後計算出10100對應的十進位制為20,所以11101011最終對應的十進位制為 -20。

二進位制和十進位制之間的互相轉換

二進位制 00010011 轉換為如下 十進位制 2 0 1 2 1 1 2 2 0 2 3 0 2 4 1 1 2 0 0 16 19 十進位制 19 轉換為如下 二進位制 16 8 4 2 1 快速轉換為 16 2 1為1 16 2 1 19 否則為0,則轉換出來的二進位制為 1 0 0 1 1...

二進位制和十進位制之間的互相轉換

十進位制轉二進位制分為 整數轉二進位制 小數轉二進位制 1.首先用2整除乙個十進位制整數,得到乙個商和餘數 2.然後再用2去除得到的商,又會得到乙個商和餘數 3.重複操作,一直到商為小於1時為止 4.然後將得到的所有餘數全部排列起來,再將它反過來 逆序排列 切記一定要反過來!1.用2乘十進位制小數,...

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...