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

2021-01-14 電梯群英會


說起二進位,十進位等大家都很熟悉,但是如果讓你相互轉換,你還會麼?


什麼是二進位


二進位是計算技術中廣泛採用的一種數制。二進位數據是用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


十進位轉換



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進位是最簡單的了,我想聰明的你肯定會了。


二進位轉換


首先來看十進位到二進位:除2取餘數 最後把餘數倒過來 100101


比如:十進位數37



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


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


比如:[八進位]616


6拆分成 110


1拆分成 001


6拆分成 110


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


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


比如:[十六進位]616


6拆分成 0110


1拆分成 0001


6拆分成 0110


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


八進位轉換


十進位到八進位:除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


十六進位轉換


十進位到十六進位:除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


各種進位的用途


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


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


16進位,內存地址空間是用16進位的數據表示, 如0×8049324。


編程中,我們常用的還是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進位數。


8進位,一般有什麼用,查了下資料,還真不知道?有知道的大神告訴我吧。


如果你用過linux你可能見過這樣表示一個文件的權限:0777、0666等等


可能有的這樣解釋:具有讀權限加1,具有寫權限加2,具有執行權限加4,最後的和就是一個角色所具有的權限。而linux有三種角色:屬主、屬組、其他用戶,所以用0777、0666之類的表示。


如果用二進位來看的話,linux用3個bit來表示權限,如果具有某個權限就把那位置1.比如只具有讀權限就是100,只具有寫權限就是010,具有讀寫權限就是110,具有讀寫執行權限就是111。







相關焦點

  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    7×160 = 3751(十進位)將十進位轉換為二進位、八進位、十六進位將十進位轉換為其它進位時比較複雜,整數部分和小數部分的算法不一樣,下面我們分別講解。,是一個循環小數;十進位 0.625 對應的二進位為 0.101,是一個有限小數。二進位和八進位、十六進位的轉換其實,任何進位之間的轉換都可以使用上面講到的方法,只不過有時比較麻煩,所以一般針對不同的進位採取不同的方法。將二進位轉換為八進位和十六進位時就有非常簡潔的方法,反之亦然。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    一、進位的概念計算機中使用二進位編碼(只有0和1)表示數據,且只存在二進位。而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    3、二、八、十進位數之間轉換(1)二進位 數與八進位數之間的轉換轉換方法①把二進位數轉換為八進位數時,按「三位並一位」的方法進行。  十進位、二進位、八進位、十六進位之間的對應關係十進位二進位八進位十六進位十進位二進位八進位十六進位000091001119
  • 二進位、八進位、十進位、十六進位數的轉換方法
    有四進位十進位:有10個基數:0 ~~ 9 ,逢十進一二進位:有2 個基數:0 ~~ 1 ,逢二進一八進位:有8個基數:0 ~~ 7 ,逢八進一十六進位:有16個基數:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六進一1、數的進位記數法N=a n-1*p n-1+a n-2*p n
  • 二進位,八進位,十進位,十六進位轉換詳解~
    數制/N二進位八進位十進位十六進位數碼0,10,1,2,3,4,5,6,70,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F基數281016規則逢二進一逢八進一逢十進一逢十六進一權2^i-18^i-110^i-116^i-12.進位轉換十進位01234567
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位、八進位、十進位與十六進位
    (0.16)8=(0.00111)2=(0. 0011 1000)2=(0.38)16訣竅:八進位直接轉換成十六進位比較費力,因此,最好先將八進位轉換成二進位,然後再轉換成十六進位。(A7)16=(1010 0111)2【例2】將十六進位數(0.D4)16轉換成二進位數。(0.D4)16=(0. 1101 0100)2訣竅:十六進位轉換成二進位與二進位轉換成十六進位相反。
  • 二進位、八進位和十六進位數之間的轉換
    然後將每一組的四位二進位數轉換為一位十六進位數。轉換方法可以參考表2-2中的進位對應關係,也可以採用按權展開的方法進行轉換。(說明:按權展開後得到的如果是0~9之間的數,直接寫這個數即可;如果是10~15之間的數,要將其轉換為十六進位的A~F。要注意十進位的10~15與十六進位的A~F的對應關係。)
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果4.2、二進位轉換為十進位二進位轉十進位的轉換原理:從二進位的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位數。
  • 二進位-八進位-十進位-十六進位之間的相互轉換
    ,最近用到數字晶片74HC125,涉及到TTL-CMOLS-進位轉換,三個方面的知識,重新拿起書本,再查找資料,匯總信息如下:01:二進位-轉為-八進位//方法://每3位為一組,因為8進位數,需要3bit數據表示0~7,逢八進一;案例1:(1100 1110)2=(11 001 110)2=(316)8
  • 二進位、十進位、八進位、十六進位間的相互轉換函數
    二進位、十進位、八進位、十六進位間的相互轉換函數1、輸入任意一個十進位的整數,將其分別轉換為二進位、八進位、十六進位。{int num;char a[39];//定義一個字符數組,用於存儲字符串cout<<"Entre num:"<<endl;cin>>num;cout<<"二進位
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    (1)十進位轉換為八進位 十進位轉換成八進位有兩種方法: 1)間接法:先將十進位轉換成二進位,然後將二進位又轉換成八進位 2)直接法:前面我們講過,八進位是由二進位衍生而來的,因此我們可以採用與十進位轉換為二進位相類似的方法,還是整數部分的轉換和小數部分的轉換
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 二進位與十六進位之間互相轉換
    通過上節課的學習,我們掌握了二進位與八進位互相轉換的方法(我們介紹的是421法),我們進行知識遷移,二進位數轉換成十六進位數的方法我們用
  • 二進位、八進位和十六進位之間轉換
    進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • 二進位、八進位和十六進位之間轉換詳解
    我們不妨將思維拓展一下,既然可以用 0~9 共十個數字來表示數值,那麼也可以用0、1兩個數字來表示數值,這就是二進位(Binary)。例如,數字 0、1、10、111、100、1000001 都是有效的二進位。在計算機內部,數據都是以二進位的形式存儲的,二進位是學習編程必須掌握的基礎。
  • 二進位、八進位、十進位、十六進位之間的轉換
    反過來,當我們看到 FD時,如何迅速將它轉換為二進位數呢?先轉換F:        看到F,我們需知道它是15(可能你還不熟悉A~F這六個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。接著轉換 D:        看到D,知道它是13,13如何用8421湊呢?
  • 數據的表示二進位八進位十進位十六進位之間的轉換
    數據的表示1.R進位轉十進位R進位轉十進位使用按權展開法二進位 10100.01 = 1x24+1x22+1x2-2七進位 604.01 = 6x72+4x70+1x7-2十進位 1227 = 1x103+2x102+2x101+7x1002.十進位轉
  • 十進位轉二、八、十六進位
    微信:15338817400有時候服務端需要二進位的字符串或者十六進位(加密token一般不會用十進位)所以十進位和十六進位、二進位互相轉化顯得十分重要1、十進位轉二進位2、十進位轉八進位二進位如何轉十進位,十進位如何轉二進位2、  負整數轉換成二進位方法:先是將對應的正整數轉換成二進位後,對二進位取反,然後對結果再加一。還以42為例,負整數就是-42,如圖4所示為方法解釋。
  • 基礎知識 | 二進位、八進位和十六進位之間轉換詳解
    我們不妨將思維拓展一下,既然可以用 0~9 共十個數字來表示數值,那麼也可以用0、1兩個數字來表示數值,這就是二進位(Binary)。例如,數字 0、1、10、111、100、1000001 都是有效的二進位。在計算機內部,數據都是以二進位的形式存儲的,二進位是學習編程必須掌握的基礎。