介紹“十六進制數(shù)字符串至數(shù)值轉(zhuǎn)換”函數(shù)
有幾點需要注意:
本文引用地址:http://www.ex-cimer.com/article/201701/337016.htm1:雖然該函數(shù)的輸入端子“string”的值可以是十六進制數(shù)、字符串(ASCII)或其他進制數(shù),但是“string”的值流入該函數(shù)中時,先轉(zhuǎn)換成字符串(ASCII)。例如,當(dāng)“string”(Hex display)值為62,因此,流入函數(shù)時,該值轉(zhuǎn)為b(ASCII),但是,如果“string”流入該函數(shù)前就是字符串(ASCII),比如直接流入a,則上述的轉(zhuǎn)換過程就可以避免。
2:在函數(shù)中,字符串(ASCII)被當(dāng)成十六進制處理,最后輸出的數(shù)值就是這個十六進制數(shù)對應(yīng)的十進制數(shù)。例如字符串(ASCII)為a,由ASCII編碼表可知十六進制“a”對應(yīng)的十進制是10,所以通過這個轉(zhuǎn)換函數(shù)后,最后得到的數(shù)值為10。如果字符串(ASCII)為aa,被當(dāng)成十六進制數(shù)(對應(yīng)的二進制為10101010)處理再進行十進制換算,最后得到的數(shù)值為170。
如圖1所示,當(dāng)輸入端子“string”(Normal display)的值為f3g(g是一個無效值,因此f3g相當(dāng)f3)時,作為十六進制數(shù),其二進制剛好是11110011,換算成10進制輸出就是243(10進制)。
3:字符串(ASCII)的每個字符都在為0~9,A~F,a~f范圍內(nèi),如果超出這個范圍,就是一個無效值,最后返回的數(shù)值是0(見圖1)。
4:如果該函數(shù)輸入端子“string”接的是一個十六進制字符串,那么這個十六進制字符串先轉(zhuǎn)換成字符串(ASCII),然后作為十六進制數(shù),之后轉(zhuǎn)換為相應(yīng)的十進制數(shù)輸出,圖2為例子說明。
圖2
結(jié)論:
最好讓輸入端子“string”接一個字符串(ASCII),這樣可以省去一個其他進制數(shù)再往字符串(ASCII)轉(zhuǎn)換過程。
評論