3

-1 を掛けて符号なし整数を操作する必要があります。

試してみると、表現可能な最大値の周りにランダムな値が返されます。

4

2 に答える 2

2

結果をクエリにキャストします。

SELECT CAST( fieldname * -1 AS SIGNED ) FROM ...
-- or
SELECT CONVERT ( fieldname * -1, SIGNED ) FROM ...

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

于 2013-08-26T19:47:15.053 に答える
1

unsigned int 変数の負の値が予想される場合は、データ型がunsignedであるため、取得できません。+ve 値のみを保持できます。

データ型intの場合: 符号付きの範囲は -2147483648 ~ 2147483647 です。符号なしの範囲は 0 ~ 4294967295 です。

-1 による乗算が発生し、結果も同じデータ型 (unsigned int) になり、MSB (最上位ビット) は負を表す 1 になります。

結果を signed int に変換またはキャストして、必要なものを取得します。

于 2013-08-26T19:49:03.953 に答える