我正在使用VBScript來解析一些Windows安裝程序內的返回代碼。我想確認我在做正確的按位的東西,所以我記下了一些Echo
報表,發現其中一人沒有產生結果,我預計:爲什麼VBScript會按位進行並且在一種情況下失敗?
WScript.Echo (&H01010101) ' prints 16843009 (0x01010101). Correct!
WScript.Echo (&H01010101 And &Hff000000) ' prints 16777216 (0x01000000). Correct!
WScript.Echo (&H01010101 And &H00ff0000) ' prints 65536 (0x00010000). Correct!
WScript.Echo (&H01010101 And &H0000ff00) ' prints 16843008 (0x01010100). What's happening here?
WScript.Echo (&H01010101 And &H000000ff) ' prints 1 (0x00000001). Correct!
這第四個只出現有屏蔽了底部的兩個字節。好吧,我想我可以看到它可能被轉換成最小的int,它可以在它得到And
ed之前保存它,所以面具比被掩蓋的東西或類似的東西要短,但是爲什麼最後的情況會起作用?
如果我的東西扔在最高字節它的工作原理:
WScript.Echo (&H01010101 And &Hf000ff00) ' prints 256 (0x01010100).
這裏有一些其他情況:
WScript.Echo (&H01010101 And &H0000f0ff) ' prints 16842753 (0x01010001).
WScript.Echo (&H01010101 And &Hf00000ff) ' prints 1 (0x00000001).
哪種類型的支持這一想法,它獲得存儲在一個WORD ,不是DWORD,但我仍然不明白髮生了什麼。
很好的解釋。 – Lankymart