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