在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 對輸入的字符進行十六進制轉(zhuǎn)十進制處理

      對輸入的字符進行十六進制轉(zhuǎn)十進制處理

      作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
      若是程序里的變量,直接用printf就可以對進制進行轉(zhuǎn)換(%d %x %o等)。假如是對輸入的字符進行進制轉(zhuǎn)換,則要復(fù)雜一點。
      想實現(xiàn)的目的是:對多個(理論對字符數(shù)設(shè)的上限是1000)輸入的0(零)x或0X開頭的十六進制轉(zhuǎn)換為十進制輸出。
      我是分成以下幾個步驟:
      1.對行輸入用數(shù)組s進行保存。(對這種輸入處理,已經(jīng)開始習慣先保存再處理的方式)
      2.識別0x和0X標識。
      3.以標識作為開始標志,空格作為結(jié)束標志,單獨提取、計算、保存每一個輸入位,轉(zhuǎn)為十進制存入數(shù)組u。
      4.為了方便計算,把u逆順序保存為數(shù)組v(因為進制運算低位在右,但是數(shù)組順序相反)。
      5.按照(16^0)*n + (16^1)*m……的算法求出一組輸入的十進制值(m、n為單個十六進制數(shù)轉(zhuǎn)換成的十進制數(shù)),余下組以循環(huán)求得。
      字符轉(zhuǎn)十進制整數(shù)基于ASCII碼(American Standard Code for Information Interchange全稱方便記憶):


      程序





      執(zhí)行(為了顯示數(shù)組順序,最后一組不夠長截圖):

      總結(jié):
      1.C里面沒有^這個運算符(實際上這是“位與”的位運算),不能直接寫16^l。必須用里面的double pow(double x, double y);來求x的y次方,但同時,編譯需要加入-lm選項:
      #gcc htoi.c -lm -o htoi (順序不能亂)
      2.計算方法弄清楚之后,對于邏輯順序問題,必須要寫寫畫畫。單憑腦子思考,很容易混亂。
      3.程序里的變量名字太過簡單,大程序要注意要嚴謹。還有省略了防御代碼,對非法的輸入格式?jīng)]有任何防御。
      4.豬腦,用了那么多t,u,v不如用容易理解的數(shù)組名……


      關(guān)鍵詞: 字符十六進制十進

      評論


      技術(shù)專區(qū)

      關(guān)閉