2009-11-14 476 views
6

通常在使用權限檢查的代碼中,我看到有些人使用十六進制0x0001,而其他人使用0x00000001。如果我沒有弄錯的話,這兩個看起來都像一個小數點1的等價物。十六進制0x0001與0x00000001

爲什麼使用一個比另一個,只是一個偏好問題?

+5

只要確保您不使用十進制數的前導零,因爲取決於將指示八進制數的語言。 '0053'不需要與'53'相同的號碼。 – 2009-11-14 22:26:13

回答

12

假設這是C,C++,Java,C#或類似的東西,它們是相同的。 0x0001意味着一個16位值,而0x00000001意味着一個32位值,但真正的字長是由編譯器在評估這些十六進制文字時在編譯時確定的。這是編碼風格的問題,但它在編譯代碼中沒有任何區別。

+0

+1 - 擊敗我吧 – ChrisF 2009-11-14 22:25:47

3

這是怎麼回事這是一個傳統的位掩碼的寬度前置零的位掩碼。此外,我還會猜測位掩碼的寬度在某些時候會改變,以添加更多專門的權限。