16進制數(shù)轉(zhuǎn)換成10進制整數(shù)的VC++程序
二進制數(shù)據(jù)很少直接用在Visual C++++程序中,因為C++通常被視作高級語言。然而,對于要在兩類不同設備間傳輸信息的通信網(wǎng)絡而言,二進制數(shù)或十六進制數(shù)的傳輸過程比十進制數(shù)更為簡單。
在某些應用場合,計算機用戶接口會引導用戶通過鍵盤輸入十六進制數(shù)。但因為這個十六進制數(shù)要被送至嵌入式系統(tǒng),所以離開PC之前它必須被轉(zhuǎn)換成真正意義上的數(shù)。此時,用戶輸入的是十六進制形式的字符串。然而,Visual C++ 6.0不提供將十六進制字符串轉(zhuǎn)換成真正意義的(用0、1表示)十六進制或二進制數(shù)的轉(zhuǎn)換函數(shù)。
圖中給出了可實現(xiàn)這種函數(shù)的程序的流程圖。首先,需將輸入的十六進制數(shù)轉(zhuǎn)換成二進制數(shù)。因為一個十六進制字符代表4位二進制數(shù),所以最好采用" switch case "結(jié)構(gòu)將單個的十六進制字符轉(zhuǎn)換 4位二進制數(shù)。函數(shù)convert_hex2bin() 可完成這一轉(zhuǎn)換。
在將整個十六進制字符串轉(zhuǎn)換成二進制數(shù)后,接下來必須將每4位二進制數(shù)轉(zhuǎn)換成相應的十進制值。函數(shù) convert_sbin2int()返回它的整數(shù)值 。這樣,通過帶有VC++ IDE的子函數(shù)subfunction atoi(),二進制字符串已被轉(zhuǎn)換成十進制數(shù)。最后,將所有小的整數(shù)相加得到最終結(jié)果。這一結(jié)果可被送至嵌入式系統(tǒng)或者以十進制形式顯示在屏幕上。