2012-04-04 27 views
0
int64_t maskTestNum = (1ll << 63); 

なぜこの値が以下の値として出力されるのか説明できますか?奇妙なビットシフト結果

-9223372036854775808

私は、絶対値が正しいと思うが、なぜマイナス記号?

+3

ええと、それは符号付きの数字です。符号ビットに移動しましたか? –

+0

OK、ta ...署名されたビットについては知りませんでしたが、意味があります。 – Remover

答えて

2

uint64_tの代わりに符号なし整数を使用します。