16進位數轉換成10進位整數的VC++程序

2020-12-04 電子產品世界

二進位數據很少直接用在Visual C++++程序中,因為C++通常被視作高級語言。然而,對於要在兩類不同設備間傳輸信息的通信網絡而言,二進位數或十六進位數的傳輸過程比十進位數更為簡單。

本文引用地址:http://www.eepw.com.cn/article/151042.htm

在某些應用場合,計算機用戶接口會引導用戶通過鍵盤輸入十六進位數。但因為這個十六進位數要被送至嵌入式系統,所以離開PC之前它必須被轉換成真正意義上的數。此時,用戶輸入的是十六進位形式的字符串。然而,Visual C++ 6.0不提供將十六進位字符串轉換成真正意義的(用0、1表示)十六進位或二進位數的轉換函數。

圖中給出了可實現這種函數的程序的流程圖。首先,需將輸入的十六進位數轉換成二進位數。因為一個十六進位字符代表4位二進位數,所以最好採用 switch case 結構將單個的十六進位字符轉換 4位二進位數。函數convert_hex2bin() 可完成這一轉換。

在將整個十六進位字符串轉換成二進位數後,接下來必須將每4位二進位數轉換成相應的十進位值。函數 convert_sbin2int()返回它的整數值 。這樣,通過帶有VC++ IDE的子函數subfunction atoi(),二進位字符串已被轉換成十進位數。最後,將所有小的整數相加得到最終結果。這一結果可被送至嵌入式系統或者以十進位形式顯示在屏幕上。

c++相關文章:c++教程


相關焦點

  • 二進位、八進位、十進位、十六進位數的轉換方法
    -2+…+a2*p2+a1*p1+a0*p02、十進位數與P進位數之間的轉換①十進位轉換成二進位:十進位整數轉換成二進位整數通常採用除2取餘法,小數部分乘2取整法。例如,將(30)10轉換成二進位數。1 ----最左位∴ (30)10 =(1E)163、將P進位數轉換為十進位數把一個二進位轉換成十進位採用方法:把這個二進位的最後一位乘上20,倒數第二位乘上21,……,一直到最高位乘上2n,然後將各項乘積相加的結果就它的十進位表達式。
  • 16進位轉換算成10進位程序
    16進位轉換算成10進位程序本文引用地址:http://www.eepw.com.cn/article/172812.htmunsigned char d[10]; //用於顯示的10位顯示緩存//========
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    再如,將十六進位數字 9FA8C 轉換成十進位:9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十進位)從右往左看,第1位的位權為 160=1,第2位的位權為 161=16,第3位的位權為 162=256,第4位的位權為 163=4096,第5位的位權為 164=65536 …… 第n位的位權就為
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    1、十進位數轉換成非十進位數(1)十進位整數轉換成非十進位整數①為什麼要進行數制間的轉換?    (2AF)16     =2× 162 +A ×161 +F ×160               =2 × 162 +10×16 +15×1               = (687)102).十進位數轉換為R進位數    方法是:R進位的整數部分和小數部分分別對待,整數部分採用「除R取餘」的方法,先計算出低位。
  • 進位轉換
    十進位用0~9表示數據;十六進位除0~9外,還用A、B、C、D、E和F來表示10~15;八進位則是0~7;二進位只有0和1。任何進位數都可以簡單地轉換成十進位數,只需將展開式中的基數改為該進位基數。例如,將十六進位數5B6D展開, (5B6D)16 = 5*16^3 + 11*16^2 + 6*16^1 + 13*16^0 = (23405)10,基數為16;二進位數 (011)2 = 0*2^2 + 1*2^1 + 1*2^0 = (3)10,基數為2。二進位數轉為八進位和十六進位也很簡單,從低位開始,每3位構成八進位的1位,或每4位構成十六進位的一位。
  • 16進位數轉換成8421BCD編碼函數
    兩個BCD碼進行加減時,先按二進位加減指令進行運算,再對結果用BCD調整指令進行調整,就可得到正確的十進位運算結果。 實際上,計算機中既有組合BCD數的調整指令,也有分離BCD數的調整指令。另外,BCD碼的加減運算,也可以在運算前由程序先變換成二進位數,然後由計算機對二進位數運算處理,運算以後再將二進位數結果由程序轉換為BCD碼。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 51單片機整數二一十進位轉換的快速算法
    摘要 旨在提高89C51系列單片機鯿程中經常用到的整數二十進位轉換的代碼執行效率。提出的快速算法思路是,首先求出整數中包含的1000的個數,方法是採用二進位整數的高6位作為其預估,再通過2次校正得到準確值。
  • 二進位、八進位和十六進位數之間的轉換
    (1)二進位數轉換為十六進位轉換方法與二進位數轉換為八進位類似,只不過是四位合一位。如:將10111101010.010001B轉換為十六進位。以小數點為基準,對於整數部分,從右向左,四位一組,不足四位前面補0。
  • 16進位與10進位轉化程序
    16進位轉換算成10進位程序本文引用地址:http://www.eepw.com.cn/article/171053.htmunsigned char d[10]; //用於顯示的10位顯示緩存//======================================================== /
  • 介紹一種二進位轉換成十進位的方法
    二進位如何轉換成十進位二進位轉換為十進位的簡便方法。
  • Cortex―M0單片機二-十進位整數轉換的快速算法
    摘要:為了提高Cortex—M0系列單片機應用系統的二進位到十進位BCD碼整數轉換代碼的執行效率,採用除十求餘數法來實現。該快速算法的核心內容是通過高效的彙編語言來實現常數除法,無論在程序代碼的運行時間和存儲空間上,都遠勝於sprintf函數。
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    1.十進位轉R進位1.1 十進位轉二進位十進位整數轉二進位十進位整數轉換成二進位採用「除2倒取餘」,十進位小數轉換成二進位小數採用
  • 二進位,八進位,十進位,十六進位轉換詳解~
    為,對於 N進位數,整數部分第 i位的位權為N^(i-1),而小數部分第j位的位權為N^-j。:整數逆序,小數順序              注意不要超出數碼範圍^-^       整數:除N取餘逆排序         小數:乘N取整順排序       以十進位數463.625轉換為十進位數為例
  • EV3關於10進位轉換2進位的詳解
    哈咯各位大家好之前突發奇想想做一個關於十進位轉化成二進位的想法,在這裡給大家講解一下。關於數字有多進位的,十進位、二進位、三進位、八進位、十六進位....等等。對我們最熟悉的莫過於十進位和二進位了,接下來給大家講解下如何實現將十進位轉化為二進位。
  • 二進位、十進位、八進位、十六進位間的相互轉換函數
    二進位、十進位、八進位、十六進位間的相互轉換函數1、輸入任意一個十進位的整數,將其分別轉換為二進位、八進位、十六進位。];//定義一個字符數組,用於存儲字符串cout<<"Entre num:"<<endl;cin>>num;cout<<"二進位:"<<itoa(num,a,2)<<endl;//轉換為2進位
  • 二進位、八進位、十進位與十六進位
    (751)8=(7x82+5x81+1x80)10               =(448+40+1)10               =(489)10【例2】將八進位數(0.16)8轉換成十進位數。13(D)(93)10=(5D)16【例2】將十進位數(0.3125)10轉換成十六進位數。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    (1)十進位轉換為八進位 十進位轉換成八進位有兩種方法: 1)間接法:先將十進位轉換成二進位,然後將二進位又轉換成八進位 2)直接法:前面我們講過,八進位是由二進位衍生而來的,因此我們可以採用與十進位轉換為二進位相類似的方法,還是整數部分的轉換和小數部分的轉換
  • 單片機進位轉換
    10進位數轉換成二進位數,這是一個連續除2的過程:   把要轉換的數,除以2,得到商和餘數,   將商繼續除以2,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。十 ----> 八  10進位數轉換成8進位的方法,和轉換為2進位的方法類似,惟一變化:除數由2變成8。   來看一個例子,如何將十進位數120轉換成八進位數。
  • (小數)浮點數轉16進位數工具
    不知道大家在工具中是否有遇到過小數和十六進位數互相轉換的情況,如果有那你是如何處理的呢?