將16進位字串轉換為 .Net 數值變數型別
strHex | String | - | 必須 | (無) | 16進位字串值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nVarType | TypeCode | 4 | 可省略 | Int32 | .Net 物件型態常數:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bBigEndian | Boolean | 1 | 可省略 | False | 由於 Windows 採用 Little Endian ,故預設改依記憶體順序排列,欲輸出類同 Hex 先高位元後低位元者,則需設定 BigEndian 引數為 True |
數值物件 (Object)
Debug.WriteLine(HexToObject("01", TypeCode.Boolean)) ' 傳回 True Debug.WriteLine(HexToObject("0F", TypeCode.Byte)) ' 傳回 15 Debug.WriteLine(HexToObject("8974", TypeCode.Char)) ' 傳回 璉 Debug.WriteLine(HexToObject("0060B36DEFA6C608", TypeCode.DateTime)) ' 傳回 2004/12/3 上午 01:34:56 Debug.WriteLine(HexToObject("FFFFFFFFFFFFFFFFFFFFFFFF00000080", TypeCode.Decimal)) ' 傳回 -79228162514264337593543950335 Debug.WriteLine(HexToObject("FFFFFFFFFFFFEFFF", TypeCode.Double)) ' 傳回 -1.79769313486232E+308 Debug.WriteLine(HexToObject("01000000", TypeCode.Int32)) ' 傳回 1 Debug.WriteLine(HexToObject("0000000000000001", TypeCode.Int64, True)) ' 傳回 1 Debug.WriteLine(HexToObject("0080", TypeCode.Int16, True)) ' 傳回 128 Debug.WriteLine(HexToObject("0000803F", TypeCode.Single)) ' 傳回 1 Debug.WriteLine(HexToObject("F957FA579E8A008A", TypeCode.String)) ' 傳回 培基語言 Debug.WriteLine(HexToObject("80", TypeCode.SByte)) ' 傳回 -128 Debug.WriteLine(HexToObject("8000", TypeCode.UInt16)) ' 傳回 128 Debug.WriteLine(HexToObject("FFFFFFFF", TypeCode.UInt32)) ' 傳回 4294967295 Debug.WriteLine(HexToObject("FFFFFFFFFFFFFFFF", TypeCode.UInt64)) ' 傳回 18446744073709551615
目前僅支援布林(Boolean)、位元組(Byte)、字元(Char)、短整數(Short)、長整數(Inetger)、單精度變數(Single)、倍精度變數(Double)、日期(Date)、字串(String)、十進位值(Decimal)及其他 .Net 所支援的純數值型別,其他目前無需求,暫不考慮發展!
字串傳回的是 UniCode 的 16 進位值,若需傳回 ASCII 的 16 進位值(存在檔案中的 16 進位值),在 .Net 應以 Encoding 轉換,或參見 StringChangeCodePages 函數。
Visual Studio .Net 2002 以後相容版本 | StrTools.vb
modStrTools 函式庫 | ByteToObject | HexToByte | ObjectToHex
|