3

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)最もエレガントな回避策は何ですか

手がかりをいただければ幸いです

4

1 に答える 1