2016-10-22 19 views
0

これは疑問なことかもしれません。しかし、ここに行く。符号なし整数型に範囲外の(負の)値を代入する

私は負の値をC++の符号なし整数型に "unsigned short a = -1"のように割り当てます。

上記の例のaの値は、65535(2^16-1)に設定されています。そして、私が符号なし整数に範囲外の値を設定した場合、値セットは最大サイズ(この場合は65536)の数値のモジュロになります。シーン?

モジュロ65536 = 65535はどのように(-1)ですか? -1それ自体ではいけませんか?

答えて

0

1 MSBビットの違いです。符号付きでは、その1ビットが数値の否定性を格納するために使用されます。署名されていない状態では、その値を格納するために使用されます。内部的に働く数学ではなく、基本的にビットパターンの操作であり、その2つの違いがあります。

関連する問題