在我的 32 位 PC 上运行 Office 2003 Excel VBA 上,以下代码
Debug.Print ""
Debug.Print Hex(&HFF00000 And &HF00000)
Debug.Print Hex(&HFF0000 And &HF0000)
Debug.Print Hex(&HFF000 And &HF000)
Debug.Print Hex(&HFF00 And &HF00)
Debug.Print Hex(&HFF0 And &HF0)
Debug.Print Hex(&HFF And &HF)
给出以下输出
F00000
F0000
FF000 '<- Here's the Anomaly
F00
F0
F
这似乎只发生在十六进制值"F"上;即用任何其他十六进制数字替换所有"F",输出将按预期
看起来像 16 位处理的一些宿醉
我的世界被打破了
我想知道是否;
1)这真的是一个异常(或者我疯了?
如果是;
2)它是否发生在其他Office版本中
3) 它是否发生在 64 位 PC 上
4)什么是最优雅的解决方法
任何线索将不胜感激
对于 VBA 中的大十六进制数字,您需要附加&
(长型字符)以确保将其正确存储为长整型字符。
例如,试试这个
Debug.Print &HF000, &HF000&