將 .Net 數值變數型別轉換成16進位字串
hObj | Object | - | 必須 | (無) | 數值物件變數。 |
bBigEndian | Boolean | 1 | 可省略 | False | 由於 Windows 採用 Little Endian ,故預設改依記憶體順序排列,欲輸出類同 Hex 先高位元後低位元者,則需設定 BigEndian 引數為 True |
字串 (String)
Debug.WriteLine(ObjectToHex(True)) ' 傳回 01 Debug.WriteLine(ObjectToHex(CByte(&HF))) ' 傳回 0F Debug.WriteLine(ObjectToHex(CChar("璉"))) ' 傳回 8974 Debug.WriteLine(ObjectToHex(CDate("2004/12/3 1:34:56"))) ' 傳回 0060B36DEFA6C608 Debug.WriteLine(ObjectToHex(CDbl(0).MinValue)) ' 傳回 FFFFFFFFFFFFEFFF Debug.WriteLine(ObjectToHex(CDec(0).MinValue)) ' 傳回 FFFFFFFFFFFFFFFFFFFFFFFF00000080 Debug.WriteLine(ObjectToHex(CInt(1))) ' 傳回 01000000 Debug.WriteLine(ObjectToHex(CLng(1), True)) ' 傳回 0000000000000001 Debug.WriteLine(ObjectToHex(CShort(&H80), True)) ' 傳回 0080 Debug.WriteLine(ObjectToHex(CSng(1))) ' 傳回 0000803F Debug.WriteLine(ObjectToHex("培基語言")) ' 傳回 F957FA579E8A008A Debug.WriteLine(ObjectToHex(MyArray(1, "培基語言", CDbl(-1)))) ' 傳回 01000000F957FA579E8A008A000000000000F0BF Debug.WriteLine(ObjectToHex(MyArray(CDbl(0.1), CDbl(1 / 3), CDbl(-1)))) ' 傳回 9A9999999999B93F555555555555D53F000000000000F0BF
函數與 VB 的 Hex 主要不同處在於本函數傳回記憶體中的16進位值, VB 的 Hex 會先將浮點數轉成整數後傳回,因此本函數傳回值包含有 0 及浮點數指數部分
目前僅支援布林(Boolean)、位元組(Byte)、字元(Char)、短整數(Short)、長整數(Inetger)、單精度變數(Single)、倍精度變數(Double)、日期(Date)、字串(String)、十進位值(Decimal)、陣列(Array),其他目前無需求,暫不考慮發展!
字串傳回的是 UniCode 的 16 進位值,若需傳回 ASCII 的 16 進位值(存在檔案中的 16 進位值),在 .Net 應以 Encoding 轉換,或參見 StringChangeCodePages 函數。
Visual Studio .Net 2002 以後相容版本 | StrTools.vb
modStrTools 函式庫 | ObjectToByte | ByteToHex | HexToObject
|