進製之間的轉換

2021-08-03 23:29:07 字數 1571 閱讀 8797

作為程式設計人員,我們常用的進製型別為 2 進製、8 進製、10 進製以及 16 進製了,他們的表示方法為:2進製為(0b001101),也就是二進位制數前加上(0b);8進製為(067),進製數前加上(0);10進製就不需多說了,什麼也不加就行,而16進製制前需要加上(0x),如(0x78af)。他們的區別在於逢幾進製,譬如說2進製,就是逢2進1, 8進製就是逢10進1,以此類推......

如果這樣說難以理解的話,我們可以想想我們從小學到大的10進製數,10進製數它的每一位可表示的範圍為【0,9】,我們以8位來舉例,9 的10進製可寫為 0000 0009,若想表示10的話,就要在 0000 0009 的基礎上 +1,這樣的話就要變成0000 0010 了,是不是逢10進了1位啊?

再說 2 進製,2 進製每一位的取值範圍為【0,1】; 8 進製每一位的取值範圍為【0,7】; 

最後說一下 16 進製,這一種進製有一丟丟的小不同, 16 進製每一位的取值範圍為【0,15】,因為說的是一位,而15是兩位數,所以我們採用了一種用一位代表兩位數的方法,從【0,9】就不多說了,都是1位,可以不用變,但是【10,15】必須要變一下了,我們採用【a,f】的方法表示【10,15】這6位數,即 10 = a,11=b,...15=f。所以16進製制每一位的取值範圍為【0,f】! 

先說10進製如何轉換成2進製吧。

如:789=1100010101(b)

789/2=394 餘1 第10位

394/2=197 餘0 第9位

197/2=98 餘1 第8位

98/2=49 餘0 第7位

49/2=24 餘1 第6位

24/2=12 餘0 第5位

12/2=6 餘0 第4位

6/2=3 餘0 第3位

3/2=1 餘1 第2位

1/2得0 餘1 第1位

這樣我們可以看到,由10進製轉換成2進製的方法就是對這個 10進製數進行除二取餘,直到除盡,然後逆序排列,這樣就得出了此 10進製數的 2進製形式了。

再說 8進製如何轉換成 2 進製吧。

8進製的一位可以表示為【0,7】,但 2 進製要表示【0,7】卻需要三位,所以8 進製表示一位,那麼 2 進製需要用 3 位開始表示,所以說 2 進製轉化為八進位制的話就應該是沒三位轉化為 8 進製中的一位。譬如: 8 進製中的 067 轉換成 2 進製數:前面第乙個數 「0」 為8進製的表示方式,真實數值應該是後面的67,我們應該從低位到高位一位一位的來轉換,先說7,就可轉換為 2 進製:111  ,6 則轉換為 2 進製 110 ,所以8進製的(0 6 7)就可轉換成 2進製中的(0b 110   111).若是2進製轉換成 8 進製,倒回去即可,原理相同。

16進製制如同 8 進製般,只不過它的每一位需要 2 進製的 的 4 位來表示,舉個例子吧,把16進製制的(0x 89af)轉換成 2 進製該如何轉換呢?也需要從低位到高位一位位來,前面

的 0x 是16 進製的的表示方式,不用管他,真是數值只是 8 9 a f,f 轉換成 2 進製可表示為:1111 ,a可表示為:1010 ,9 可轉換為:1001 ,8 可表示為 1000,所以

16進製制數(0x 8 9 a f)轉換成 2 進製數可表示為(0b 1000 1001 1010 1111)。

若還未懂,請細看

進製之間的轉換

今天翻了一本計算機基礎的書籍,其中十進位制 二進位制 八進位制 十六進製制之間的轉換挺有意思的,也容易犯糊塗,特溫故而知新。十進位制數制系統 十進位制數制系統包括 10 個數字 0 1 2 3 4 5 6 7 8 9 基為 10 逢十進一,如3 7 10,20 80 100 二進位制數制系統 計算機...

進製之間的轉換

十進位制數制系統 十進位制數制系統包括 10 個數字 0 1 2 3 4 5 6 7 8 9 基為 10 逢十進一,如3 7 10,20 80 100 二進位制數制系統 計算機中使用二進位制表示資料 二進位制包括兩個符號 0和1 二進位制逢二進一 1 1 2 10 2 二進位制的基為2 示例 100...

進製之間的轉換

二進位制數為 0或1表示,十進位制數為0 9表示,十六進製制為0 f表示 二進位制數後用o表示,十進位制數後用d表示,十六進製制數後用h表示。將十進位制數99d轉換為二進位制數可以用除2取餘法 99除2得49餘1 49除2得24餘1 24除2得12餘0 12除2得6餘0 6除2得3餘0 3除2得1餘...