Office 2003 Excel VBA を実行している 32 ビット PC で、次のコード
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
これは、16 進値「F」でのみ発生するようです。つまり、すべての「F」を他の 16 進数に置き換えると、出力は期待どおりになります。
16ビット処理からのいくつかのハングオーバーのように見えます
私の世界は粉々になった
私は疑問に思っています;
1) これは本当にアノマリーです (それとも気が狂いそうですか?)
もしそれが;
2) 他の Office バージョンでも発生しますか?
3) 64 ビット PC で発生しますか?
4)最もエレガントな回避策は何ですか
手がかりをいただければ幸いです