C語言實現十進位轉2~16進位、十六進位轉十進位

2021-03-02 程序設計及信息技術學習平臺

1、十進位轉216進位

【問題描述】從鍵盤輸入十進位整數num及轉換的進位數base,將整數num轉換為base進位(base取值範圍為 2~16)。

方法為:十進位數除base取餘法,即十進位數除以base,餘數為權位上的數,得到的商值繼續除以base,依此步驟繼續向下運算直到商為0為止。

源程序:

#include<stdio.h> 

void trans(int data, int base) 

    int x[64],k,i=0;

    while(data) 

    {  

        x[i]=data%base;  

        data/=base;

        i++;

    }

    for(k=i-1;k>=0;k--)

      if(x[k]<10) 

            printf("%d", x[k]);    

      else if(x[k]<=16) 

            printf("%c", 'A'+x[k]-10); 

int main(void) 

    int num,base; 

    scanf("%d%d", &num, &base); 

    if(base<=0||base>16)

       { 

          printf("data error\n"); 

          return; 

       } 

    printf("number=%d  base=%d\n",num,base); 

    trans(num,base); 

    printf("\n"); 

    return 0;

2、十六進位轉十進位

【問題描述】輸入一個字符串,取出該字符串中的十六進位字符(不分大小寫)組成一個新的表示十六進位數的字符串,輸出該字符串並將其轉換成十進位數後輸出。

方法為:十六進位數由數字0~9、字母A~F(或a~f)組成。把十六進位數按權展開、相加即得十進位數。

源程序:

#include<stdio.h>

#include<string.h>

int main(void)

{

  char s[20],hex[20];

  int i,j,num;

  gets(s);

  /* 取出字符串中的十六進位字符  */

  for(i=0,j=0;s[i]!='\0';i++)

   {

     if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='F'||s[i]>='a'&&s[i]<='f')

       {

          hex[j]=s[i];

          j++;

       }

   }

   hex[j]='\0';

   printf("Hexadecimal String: ");

   puts(hex);

  

   /* 十六進位轉十進位 */ 

   num=0;  

   for(i=0;hex[i]!='\0';i++)

    {

        if(hex[i]>='0'&&hex[i]<='9')

            num=num*16+hex[i]-'0';

         else if(hex[i]>='A'&&hex[i]<='F')

                     num=num*16+hex[i]-'A'+10;

                 else if(hex[i]>='a'&&hex[i]<='f')

                     num=num*16+hex[i]-'a'+10;  

    }

   printf("Decimal number=%d\n",num);          

   return 0;

}

相關焦點

  • 二進位、八進位、十進位與十六進位
    在計算機語言中常用的進位有二進位、八進位、十進位和十六進位,十進位是最主要的表達形式。二進位是0和1; 八進位是0-7;十進位是0-9;十六進位是0-9,A-F(大小寫均可)。也可以這樣簡單記憶,假設是n進位的話,基數就是【0,n-1】的數字,基數的個數和進位值相同,二進位有兩個基數,十進位有十個基數,依次類推。
  • 十進位與二進位、八進位、十六進位互轉
    十進位與二進位互轉  首先理解十進位如何轉二進位:將十進位數據除以2直到商為0,然後將餘數從下往上排序連接,即可得到該數字的二進位數。如:整數1313/2=6餘16/2=3餘03/2=1餘11/2=0餘1取13餘數,倒序連接。
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    圖3.十進位轉八進位1.3 十進位轉十六進位思路和十進位轉二進位一樣,參考如下例題:例題: 25.68D = ______ H(精確到小數點後3位)**解析:**如下圖所示,整數部分除以16取餘數圖4.十進位轉十六進位# 2.R進位轉十進位 ## 2.1 二進位轉十進位 **方法為:**把二進位數按權展開、相加即得十進位數。
  • 二進位、八進位、十進位、十六進位相互轉化
    數值是0~9 逢十進一    2.二進位 數值是0~1 逢二進一    3.八進位 數值是0~7 逢八進一    4.十六進位 數值0~9 A~F 逢十六進一二、數位    一個數字所在的位置    1000   4位 個0 十1 百2千3    10101 二進位  5位  01234
  • 表格技巧—Excel中將十進位轉成十六進位
    ,其中比較常見的就是十進位和十六進位。這是因為在計算機領域,十六進位還是經常用到的。那麼如何將十進位轉成十六進位呢?下面我們就來學習一下。  打開一個Excel文檔,看到文中有一組十進位的數據:     在彈出的對話框中,選擇十進位轉成十六進位的函數:DEC2HEX,點擊確定:
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4.2、二進位轉換為十進位二進位轉十進位的轉換原理:從二進位的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位數。 4.3、十進位轉換為十六進位4.4、十六進位轉換為十進位(這裡不再展示過程,不常用)
  • 二進位、八進位、十進位、十六進位數的轉換方法
    ,又常用八、十六進位作為二進位的縮寫。有四進位十進位:有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
  • 個人總結——二進位、十進位、十六進位轉換的方法
    近期和同事溝通時發現很多小夥伴多進位的轉換不太清晰,所以趁著周末自己總結了一下和大家分享想,下面先了解下定義。
  • python進位轉換:十進位轉二進位的用法
    dec(十進位)—> bin(二進位)dec(十進位)—> oct(八進位)dec(十進位)—> hex(十六進位)二、十進位我們所熟知的十進位,其實是從 0 開始,數到 9 之後,就跳到
  • 【S7-200】二進位、八進位、十進位、十六進位數的轉換方法
    S7-300 QQ群: 385453109 EPLAN QQ群: 239317903 一 、數制 計算機中採用的是二進位,因為二進位具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述,又常用八、十六進位作為二進位的縮寫。
  • 一大波 Excel 進位轉換函數來襲,二、八、十、十六進位互轉
    偶然看到某些「老師」教十進位轉二進位,寫了好幾行的巨複雜公式,看得我尷尬癌都犯了。愚公移山精神固然可嘉,但方法絕不可取,若還把此作為「正確方法」傳播,那就是誤人子弟,應該批判了。二進位轉其他:將二進位數轉換為八進位數:BIN2OCT 函數將二進位數轉換為十進位數:BIN2DEC 函數將二進位數轉換為十六進位數:BIN2HEX 函數
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    當然,人們輸入計算機的十進位被轉換成二進位進行計算,計算後的結果又由二進位轉換成十進位,這都由作業系統自動完成,並不需要人們手工去做,學習彙編語言,就必須了解二進位(還有八進位/十六進位)。 數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。人們通常採用的數制有十進位、二進位、八進位和十六進位。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    數制/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
  • C/C+編程筆記:C語言進位詳解,二進位、八進位和十六進位!
    例如表示 5+8 的結果,一個數字不夠,只能」進位「,用 13 來表示;這時」進一位「相當於十,」進兩位「相當於二十。 因為逢十進一(滿十進一),也因為只有 0~9 共十個數字,所以叫做十進位(Decimalism)。十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。
  • 如何實現二進位轉十進位的設計
    設計背景: 二進位轉十進位在設計應用中十分的廣泛。尤其在AD轉化中是必須所用到的一個小知識點,學習二進位轉十進位的方法顯的非常的重要。今天就和筆者來學習二進位轉十進位的方法,通過簡單的學習來掌握這麼一門知識。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    例:①將八進位數67.35轉換為十進位三、十六進位與十進位的轉換 十六進位與八進位有很多相似之處,大家可以參照上面八進位與十進位的轉換自己試試這兩個進位之間的轉換。 即把上面對應的8變為16進行運算。大家從上面這道題可以看出,計算八進位轉換為二進位 首先,將八進位按照從左到右,每位展開為三位,小數點位置不變 然後,按每位展開為2,2,2(即4、2、1)三位去做湊數,即a×2+ b×2 +c×2=該位上的數(a=1或者a=0,b=1或者b=0,c=1或者c=0),將abc排列就是該位的二進位數
  • 閒聊數制形式:二進位、八進位、十進位、十六進位
    生活中常用的十進位計數方法可以說無時無刻都伴隨著我們左右,小到你去超市買米買菜,大到國家宏觀經濟的計算調控。我們這裡提到的十進位就是告訴你「逢十進一」,低位的數值滿十以後向前面的高位進一,然後低位數值變為零,那麼相應的二進位、八進位、十六進位就可以理解為「逢二進一」、「逢八進一」、「逢十六進一」。
  • 二進位、十進位、八進位、十六進位間的相互轉換函數
    二進位、十進位、八進位、十六進位間的相互轉換函數1、輸入任意一個十進位的整數,將其分別轉換為二進位、八進位、十六進位。{int num;char a[39];//定義一個字符數組,用於存儲字符串cout<<"Entre num:"<<endl;cin>>num;cout<<"二進位
  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    進位轉換圖【原創】文章全部內容皆為作者原創,如有轉載請註明出處我們人類有十根手指,通常情況下我們在生活中的計數方式為「十進位」(即0-9),也就說滿十進一;而在計算機的世界裡,基礎電路只有「開/關(通/斷)」(即0/1)兩種情況,這與誕生幾千年的二進位不謀而合;例如:二進位數字110,表達的就是十進位中的6;二進位數字1111,表達的就是十進位中的15。