ASC轉int型別
阿新 • • 發佈:2021-01-09
技術標籤:C語言
/************************************************************************
Description :
IsHexMode=1 1234 -> 0x1234
IsHexMode=0 1234 -> 1234 -> 0x04d2
************************************************************************/
u8 AscToInt(const u8 pdata, u8 length, u8 IsHexMode, u32 tardata) // AscToInt
u32 jval=0;
u8 tmp, bLen, index, dh=10;
if ((length==0) || (length>9)) { return 0x00; } bLen = 0; if (IsHexMode) // 0x10 { dh = 0x10; for (tmp=0; tmp<length; tmp++) { if (IS_HEX_LETTER(pdata[tmp])) { bLen++; } else { break; } } } else /* 十進位制 10 */ { dh = 10; for (tmp=0; tmp<length; tmp++) // 112.95.251.144:9936 { if (IS_DIGIT_NUM(pdata[tmp])) { bLen++; } else { break; } } } jval = 0; // 1234 for (index=0; index<bLen; index++) { jval = jval*dh + chr(pdata[index]); #if 0 putU32Hex(jval); putByte(pdata[index]); putLine(); #endif } *tardata = jval; return bLen;
}