重複の可能性:
64ビットシフトの問題
私はWindows864ビットでVisualStudio2012を使用しており、AMD PhenomIIを使用してデバッグモードでx64をターゲットにしています。
だから基本的に...
uint64_t Foo = 0xFFFFFFFFFFFFFFFF << 64;//Foo is now 0x0000000000000000
uint64_t Derp = 64;
uint64_t Bar = 0xFFFFFFFFFFFFFFFF << Derp;//Foo is now 0xFFFFFFFFFFFFFFFF
63などの低い値を使用すると、通常の動作が復元されます。
なぜこれが起こっているのですか、どうすれば回避できますか?
更新:リリースモードに切り替えました。見よ、問題は消え、両方とも0を返しました。しかし、問題はデバッグモードのままであり、コードをデバッグするために必要な場所です。