進制轉換(以常見的二進制,8進制,16進制舉例)


什么是進制?

參考百度百科的說法:進制也就是進位計數制,是人為定義的帶進位的計數方法.對於任何一種進制---X進制,就表示每一位上的數運算時都是逢X進一位。 十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一,以此類推,x進制就是逢x進位。
通俗說就是 一種人為規定的進位方法,這里需要強調一下,因為進位了, 比如2進制逢2進1,8進制逢8進1等等,所以:
二進制數里沒有2 比如 1001 , 錯誤示例: 12
8進制數里沒有8 , 比如 249, 錯誤示例: 18
10進制里也沒有十 ,(注意:這里指的 沒有 是指沒有單個位數的一個數, 我們常見的10 實際上因為到了9以后逢10,然后進了一位,從一位數的9 變成了 1 0 兩位數,並沒有單獨表示10的這么一個數)

16進制

根據上文中的說法, 16進制應該沒有16, 但是阿拉伯數組只有10個(即0-9),那該怎么辦呢?
對於9以后的數,我們用字母表示, 比如: 在16進制中, 我們單個位數上的數字有 1,2,3,4,5,6,7,8,9,(重點來了),在9以后,我們用 a表示10, b,表示11,c表示12...最后到f代表15,因為是16進制沒有16嘛,所以到f就結束

進制轉換

整數轉換

2進制轉10進制

由於常見的是2進制,所以下面我們拿2進制舉例,道理都是一樣的
首先看一個二進制數, 比如 101
方法:也就是說,將二進制數轉換為十進制數,就是將每個位數的數(只有1或者0)乘2的n次方(這個n就是由從右邊數的第n位,注意右邊第一位從0開始)
image

拓展:n進制轉換為10進制

方法與2進制也基本相同,只是將上述的2次方換為n即可
例如, 16進制的 10 就等於十進制的 0*(16^0) + 1*(16^1) = 16

10進制轉n進制

十進制轉二進制:
  1. 將要轉換的數逐漸除以n(2進制就是n就是2),余數保留,直到最后的商等於0為止
  2. 最后將得到的余數逆序擺出得到的數就是對應的二進制數
    例如十進制的302: ( "/"代表除以的意思)
    302/2 = 151 余0
    151/2 = 75 余1
    75/2 = 37 余1
    37/2 = 18 余1
    18/2 = 9 余0
    9/2 = 4 余1
    4/2 = 2 余0
    2/2 = 1 余0
    1/2=0 余1
    得到的余數依次是0 1 1 1 0 1 0 0 1,將其逆序擺出得到的數為100101110,就是302的二進制數

將2進制轉換為8進制(m進制轉換為n進制)

我們可以先將2進制其轉換為我們熟悉的10進制,將10進制再轉換為8進制即可,這里不在贅述

小數轉換

十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換后,再加以合並。
十進制整數轉換為二進制整數采用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。
例如把 (173)10 轉換為二進制數。
image


十進制小數轉換成二進制小數采用"乘2取整,順序排列"法。
具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘余下的小數 部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。
例如把(0.8125)轉換為二進制小數。
image

[轉載]分數轉二進制

作者:大腦殼家電團
鏈接:https://www.zhihu.com/question/27908137/answer/38588258
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

我們轉換整數部分用的是短除法, 那么類似的, 轉換小數用的是乘法. 其基本做法是, 乘以2, 不滿1寫0, 滿1寫1並去掉積中的1, 然后積再繼續乘2.
如1/3:

首先, 我們寫下

接着, 1/3 乘以2, 得2/3, 不到1, 因此, 我們接着寫下0

0.0

接着, 2/3 乘以2, 得4/3, 超過1, 因此, 接着寫下1

0.01

4/3去掉1是1/3, 我們發現了循環, 因此, 循環節是01


免責聲明!

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



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