前の質問を続ける なぜ私は長いから派生することができないのですか?
面白い問題を見つけました。
第一歩:
4294967296 & 0xFFFFFFFF00000000
結果:4294967296。
ステップ2。
4294967296 & 0x00000000FFFFFFFF
結果:0
ああ、だからここでは4294967296 == 0xFFFFFFFF
確認しよう
(long)0x00000000FFFFFFFF
結果:4294967295。失敗します。
再確認しましょう
4294967296 >> 32
結果:1。失敗します。
唯一の説明は、私がlongを使用しているため、一部のビットが符号用に予約されているということです。CIではunsignedlongを使用します。みんなどう思いますか?