2015-05-18 289 views
1

我必須將十六進制數轉換爲十進制數,但不知道如何。在AutoIt的文檔(下圖)的一些常量(即分配十六進制值)被定義:十六進制爲十進制

a hexadecimal number from AutoIt's documentation

0x00200000十六進制(下劃線在圖像)等於8192十進制(這是真正的轉化率)。但轉換器返回2097152。我必須轉換另一個十六進制值(0x00000200),但轉換器錯誤。如何正確轉換它?

當我使用定義$WS_EX_CLIENTEDGE(或十六進制值)時,它不起作用。如果我使用整數,我相信它會起作用。

+2

8192是爲0x2000,你有*值* 2097152這是一樣的窗口WS_VSCROLL不斷 –

+2

您已經瞭解了錯。 '0x00200000'不是十進制8192.您可以使用Windows計算器(使用*查看*菜單將其置於編程器模式中)自行驗證。檢查* Hex *單選按鈕,輸入'200000',然後單擊* Dec *按鈕。讀取十六進制數字時,可以刪除任何前導零 - 「0x00200000」與「0x200000」相同,「0x00000200」與「0x200」相同。 –

回答

3

作爲每Documentation - Language Reference - Datatypes

在AutoIt的只有一個被稱爲變體的數據類型。一個變體可 包含數字或字符串數​​據,並決定如何使用數據 取決於它是在被使用的情況

發行:

ConsoleWrite(0x00200000 & @LF) 

證明規定的行爲。在轉換要求的情況下使用Int()

#region Hex2Dec 
Global Const $dBin1 = 0x00200000 
Global Const $iInt1 = Int($dBin1) 

ConsoleWrite($iInt1 & @LF) 
#endregion 

#region Dec2Hex 
Global Const $iInt2 = 8192 
Global Const $dBin2 = Hex($iInt2) 

ConsoleWrite('0x' & $dBin2 & @LF) 
#endregion