、私は、私が手64ビット符号なし減算の問題
std::cout << "Diff: " << Diff;
、following-
size_t Num2= 2359198081
size_t Num1= 2359197799
size_t Diff= Num2 - Num1;
を持って
Diff: 18446744071938113404
期待どおり、Num2とNum1が2より大きいので負の値になる32
私が行う場合は、
std::cout << "Diff: " << Num2 - Num1 << std::endl;
は、それから私は、
差分取得:予想通りである282
。
私はここで間違っていますか?むしろ正しい64ビット減算を行うにはどうしたらいいですか?
実際のコードを表示します。あなたが説明していることは意味をなさないので、あなたが言及していないことが起こっているはずです。問題をコンパイル、実行、および表示するプログラムを提供します。 –
'size_t'は符号なしの型です。負の値を期待している場合は、期待を調整してください。実際のコードを表示します。あなたが示したもので、 'Num2 - Num1'は282を返します。あなたはおそらく' Num1 - Num2'を計算していますか?これを読んでください:[mcve] –
「符号なし」整数を使って負の値を得る方法はありますか? –