計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換

2021-01-14 C程序設計思維

 

一、進位的概念

計算機中使用二進位編碼(只有0和1)表示數據,且只存在二進位。

而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。

而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。

基數:進位計數制採用R個基本符號,則R為數制的基數。

運算:「逢R進一,借一當R」。

十進位        R=10可使用0,1,2,3,4,5,6,7,8,9

二進位        R=2  可使用0,1

八進位        R=8  可使用0,1,2,3,4,5,6,7

十六進位    R=16可使用0,……,9,A,B,C,D,E,F

1、十進位表示

基數:10         (所含數碼的個數)

權:10x            (表明數碼所在的位置)

數碼:0 ~ 9

按權展開求和,用權10x表示數碼的位置,等號=左右表達式相等。

例如:  123.45=1×102+2×101+3×100+4×10-1+5×10-2

2、二進位數:

基數:2

權:2x

數碼:0 1

二進位轉換成十進位:二進位數按權(2x)展開求和,得相應的十進位值。

  例如:1010.11=1×230×221×210×201×2-11×2-2=10.75

    即二進位數1010.11等於十進位數10.75

二進位數權值:128   64   32   16   8     4     2    1

   即20=121=222=4,……,

則二進位數111=1×221×21

1×20=4+2+1=7(十進位數)。

3、八進位表示

基數:8

權:8x

數碼:0 ~ 7

八進位轉換成十進位:八進位數按權(8x)展開求和,得相應的十進位值。

例如:023=2×813×80 =19

      即八進位數023等於十進位數19

註:C語言中八進位數第一個數字必須為0(八進位標誌)

例如:0213      -030     +056    -0123

4、十六進位表示

基數:16

權:16X

數碼:0 ~  9,A,B,C,D,E,F(一共16個數碼,從0開始,其中A,B,C,D,E,F分別表示十進位數10111213、1415

十六進位轉換成十進位:十六進位數按權(16x)展開求和,得相應的十進位值。

例如:0XBF3C=11×16315×1623×16112×160=48956    

      即十六進位數0XBF3C等於十進位數48956

註:十六進位數前兩個數字必須為 0X(十六進位標誌)

例如:0X213     -0X30       +0X56      -0X12A

二、進位轉換

1、二進位、八進位、十六進位轉換成十進位,用按權展開求和。(如上)

2、十進位轉換成二進位、八進位或十六進位,用商整除基數逆向取餘法。

1)十進位整數轉換為二進位整數的方法為:除逆向取餘數。

首先,十進位整數105除以2,   商為52,餘數為:105-2*52=1。

    繼續,用商52除以2,商為26,餘數為:  52-2*26=0。

繼續,用商26除以2,商為13,餘數為:26-2*13=0。

繼續,用商13除以2,商為6,餘數為:13-2*6=1。


繼續,用商6除以2,商為3,餘數為:6-2*3=0。

 

繼續,用商3除以2,商為1,餘數為:3-2*1=1。

繼續,用商1除以2,商為0,餘數為:1-2*0=1。

直到商為0,結束。

先算出來的餘數作為二進位數的低位,後算出來的餘數作為二進位數的高位,即十進位數105轉換為二進位數為1101001,所以是逆向取餘。

2)十進位整數轉換為八進位整數的方法為:除8逆向取餘數。

首先,十進位整數100除以8,   商為12,餘數為:100-8*12=4。

 

繼續,用商12除以8,商為1,餘數為:12-8*1=4。

繼續,用商1除以8,商為0,餘數為:1-8*0=1。

直到商為0,結束。

先算出來的餘數作為八進位數的低位,後算出來的餘數作為八進位數的高位,即十進位數100轉換為八進位數為  144,所以是逆向取餘。

 


3)十進位整數轉換為十六進位整數的方法為:除16逆向取餘。

首先,十進位整數100除以16,商為6,餘數為:100-16*6=4。

繼續,用商6除以16,商為0,餘數為:6-16*0=6。

直到商為0,結束。

先算出來的餘數作為十六進位數的低位,後算出來的餘數作為十六進位數的高位,即十進位數100轉換為十六進位數為64,所以是逆向取餘。

 

   


相關焦點

  • 二進位,八進位,十進位,十六進位之間的轉換
    二進位轉換首先來看十進位到二進位:除2取餘數 最後把餘數倒過來 100101比如:十進位數37所以轉換成的二進位數字為:100101再來八進位到二進位:一個八進位的位拆分成一個三位的二進位數>十進位到八進位:除8取餘數 最後把餘數倒過來同時我們也可以先將十進位轉換成二進位,然後將二進位又轉換成八進位比如:2456 轉化成八進位數字:46302456/8=307,餘0;307/8=38,餘3;38/8=4
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    上節我們對二進位、八進位和十六進位進行了說明,本節重點講解不同進位之間的轉換,這在編程中經常會用到,尤其是C語言。
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果4.2、二進位轉換為十進位二進位轉十進位的轉換原理:從二進位的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位數。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    3、二、八、十進位數之間轉換(1)二進位 數與八進位數之間的轉換轉換方法①把二進位數轉換為八進位數時,按「三位並一位」的方法進行。  十進位、二進位、八進位、十六進位之間的對應關係十進位二進位八進位十六進位十進位二進位八進位十六進位000091001119
  • 二進位、八進位、十進位、十六進位數的轉換方法
    一 、數制 計算機中採用的是二進位,因為二進位具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述,又常用八、十六進位作為二進位的縮寫。在計算機中:D7 D6 D5 D4 D3 D2 D1 D0 只有兩種0和18 4 2 1二 、數制轉換 不同進位計數制之間的轉換原則:不同進位計數制之間的轉換是根據兩個有理數如相等,則兩數的整數和分數部分一定分別相等的原則進行的。也就是說,若轉換前兩數相等,轉換後仍必須相等。
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位、八進位、十進位與十六進位
    一、 進位的概念在計算機語言中常用的進位有二進位、八進位、十進位和十六進位,十進位是最主要的表達形式。對於進位,有兩個基本的概念:基數和運算規則。(0.16)8=(0.00111)2=(0. 0011 1000)2=(0.38)16訣竅:八進位直接轉換成十六進位比較費力,因此,最好先將八進位轉換成二進位,然後再轉換成十六進位。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    數制/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
  • 二進位、八進位和十六進位數之間的轉換
    然後將每一組的四位二進位數轉換為一位十六進位數。轉換方法可以參考表2-2中的進位對應關係,也可以採用按權展開的方法進行轉換。(說明:按權展開後得到的如果是0~9之間的數,直接寫這個數即可;如果是10~15之間的數,要將其轉換為十六進位的A~F。要注意十進位的10~15與十六進位的A~F的對應關係。)
  • 二進位與十六進位之間互相轉換
    通過上節課的學習,我們掌握了二進位與八進位互相轉換的方法(我們介紹的是421法),我們進行知識遷移,二進位數轉換成十六進位數的方法我們用
  • 二進位、八進位和十六進位之間轉換
    進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • 二進位、八進位和十六進位之間轉換詳解
    我們不妨將思維拓展一下,既然可以用 0~9 共十個數字來表示數值,那麼也可以用0、1兩個數字來表示數值,這就是二進位(Binary)。例如,數字 0、1、10、111、100、1000001 都是有效的二進位。在計算機內部,數據都是以二進位的形式存儲的,二進位是學習編程必須掌握的基礎。
  • 二進位-八進位-十進位-十六進位之間的相互轉換
    ,最近用到數字晶片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)直接法:前面我們講過,八進位是由二進位衍生而來的,因此我們可以採用與十進位轉換為二進位相類似的方法,還是整數部分的轉換和小數部分的轉換
  • 二進位、十進位和十六進位
    二進位就是逢二進位,它的一個位只有兩個值:0 和 1,但它卻是實現計算機系統的最基本的理論基礎,計算機(包括單片機)晶片是基於成萬上億個的開關管組合而成的,他們每一個都只能有開和關兩種狀態,再難找出第三個狀態了(不要辯解半開半關這個狀態,它是不穩定態,是極力避免的),所以他們只能對應於二進位的 1 和 0 兩個值,而沒有 2、3、4......,理解二進位對於理解計算機的本質很有幫助。
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 進位詳解:二進位、八進位和十六進位
    例如表示 5+8 的結果,一個數字不夠,只能」進位「,用 13 來表示;這時」進一位「相當於十,」進兩位「相當於二十。因為逢十進一(滿十進一),也因為只有 0~9 共十個數字,所以叫做十進位(Decimalism)。十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。
  • 基礎知識 | 二進位、八進位和十六進位之間轉換詳解
    我們不妨將思維拓展一下,既然可以用 0~9 共十個數字來表示數值,那麼也可以用0、1兩個數字來表示數值,這就是二進位(Binary)。例如,數字 0、1、10、111、100、1000001 都是有效的二進位。在計算機內部,數據都是以二進位的形式存儲的,二進位是學習編程必須掌握的基礎。
  • 十進位轉二、八、十六進位
    微信:15338817400有時候服務端需要二進位的字符串或者十六進位(加密token一般不會用十進位)所以十進位和十六進位、二進位互相轉化顯得十分重要1、十進位轉二進位2、十進位轉八進位二進位如何轉十進位,十進位如何轉二進位計算機內部表示數的字節單位是定長的,如8位,16位,或32位。所以,位數不夠時,高位補零,所說,如圖3所示,42轉換成二進位以後就是。00101010,也即規範的寫法為(42)10=(00101010)2.趕緊記住吧。