二進制,八進制,十進制,十六進制之間的轉換


1.什么是二進制

     二進制是計算技術中廣泛采用的一種數制二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。

 

信息的存儲單位

位(Bit) :度量數據的最小單位

字節(Byte):最常用的基本單位,一個字節有8位

b7  b6 b5 b4 b3 b2 b1 b0

1    0   0  1   0   1   0   1  =27+24+22+20=149

K字節       1k=1024 byte

M(兆)字節  1M=1024K

G(吉)字節  1G=1024M

T(太)字節  1T=1024G

曾經聽人說,一個c,c++大神,就靠輸入,0和1就可以裝好操作系統,不知道是不是真的,嘿嘿

2.十進制轉換

1234[10進制] 0 1 2 3 4 5 6 7 8 9 0 當數位上的值超過9就要進1

1000+200+30+4=1*103+2*102+3*101+4*100=1234

 

1011[2進制] 0 1 當數位上的值超過1就要進1

1*23+0*22+1*21+1*20=8+0+2+1=11

 

1011[8進制]0 1 2 3 4 5 6 7 當數位上的值超過7就要進1

1*83+1*81+1*80=512+8+1=521

 

1011[16進制]0 1 2 3 4 5 6 7 8 9 A B C D E F 當數位上的值超過15就要進1

1*163+1*161+1*160=4096+16+1=4113

 當然其他進制轉換成10進制是最簡單的了,我想聰明的你肯定會了。

3.二進制轉換

 首先來看十進制到二進制:除2取余數 最后把余數倒過來 100101

比如:十進制數37

 所以轉換成的二進制數字為:100101

 

 再來八進制到二進制:一個八進制的位拆分成一個三位的二進制數

比如:[八進制]616

      6拆分成 110

     1拆分成 001

     6拆分成 110

所以轉換成的二進制數字為:110001110

 

 再來十六進制到二進制:一個八進制的位拆分成一個四位的二進制數

 比如:[十六進制]616

      6拆分成 0110

     1拆分成 0001

     6拆分成 0110

所以轉換成的二進制數字為:11000010110

4.八進制轉換

十進制到八進制:除8取余數 最后把余數倒過來

同時我們也可以先將十進制轉換成二進制,然后將二進制又轉換成八進制 

比如:2456 轉化成八進制數字:4630

2456/8=307,余0;
307/8=38,余3;
38/8=4,余6;
4/8=0,余4。
將所有余數倒序相連,得到結果:4630。
因此十進制的2456轉換為八進制結果為4630。

 

二進制到八進制轉換  7=4+2+1 111 八進制最大的數字是7轉換成二進制剛好是111,占3個位

每三個二進制數為一組,轉成一個八進制數位,如果二進制高位不足3位時,用零填補。

比如:10011011

      010 011 011

       2     3     3

因此二進制的10011011轉換為八進制結果為233。

 

 十六進制到八進制

 我們可以先把十六進制的數字轉換成二進制,在從二進制轉換成八進制例如: 

3BC24 
分別對應到二進制就是: 
3 0011 
B 1011 
C 1100 
4 0100

連起來就是: 
0011 1011 1100 0100

再按照每三個一組分組: 
0 011 101 111 000 100

0__3__5__7__0__4 
所以8進制就是35704

5.十六進制轉換

十進制到十六進制:除16倒着取余數

同時我們也可以先將十進制轉換成二進制,然后將二進制又轉換成十六進制 

比如說:1610轉換成十六進制

直接轉16進制:
1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;

故:1610(10)=64A(16).

 
        

二進制到十六進制 15=8+4+2+1   1111 十六進制最大數字是F,即15轉換成二進制1111,剛好占4個位

每四個二進制數為一組,轉成一個十六進制數位,如果二進制高位不足3位時,用零填補。

比如:1110011011

        0011 1001 1011

          3       9      B

因此二進制的 1110011011轉換為十六進制39B

 

八進制到十六進制

我們可以先把八進制的數字轉換成二進制,在從二進制轉換成十六進制

   八進制的:1234567

轉換為二進制是每個數字轉換為三位二進制:001 010 011 100 101 110 111

然后把這些數字從右邊開始進行按四位分組:0 0101 0011 1001 0111 0111

然后從右邊每四位組依次對應一個16進制數:053977

6.各種進制的用途

2進制,是供計算機使用的,1,0代表開和關,有和無,機器只認識2進制。

10進制,當然是便於我們人類來使用,我們從小的習慣就是使用十進制,這個毋庸置疑。

16進制,內存地址空間是用16進制的數據表示, 如0x8049324。

編程中,我們常用的還是10進制。   

比如:int a = 100,b = 99;   

不過,由於數據在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決 問題。但二進制數太長了。比如int 類型占用4個字節,32位。比如100,用int類型的二進制數表達將是:   

0000 0000 0000 0000 0110 0100   

面對這么長的數進行思考或操作,沒有人會喜歡。因此,用16進制或8進制可以解決這個問題。因為,進制越大,數的表達長度也就越短。

1.用於計算機領域的一種重要的數制   

2.對計算機理論的描述,計算機硬件電路的設計都是很有益的。比如邏輯電路設計中,既要考慮功能的完備,還要考慮用盡可能少的硬件,十六進制就能起到一些理論分析的作用。比如四位二進制電路,最多就是十六種狀態,也就是一種十六進制形式,只有這十六種狀態都被用上了或者盡可能多的被用上,硬件資源才發揮了盡可能大的作用。   

3.十六進制更簡短,因為換算的時候一位16進制數可以頂4位2進制數。


免責聲明!

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



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