介紹“十六進制數字符串至數值轉換”函數

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