我需要操纵无符号整数乘以-1。
当我尝试它时,它只返回一个围绕最大可表示值的随机值。
答案 0 :(得分:2)
将结果投射到查询中。
SELECT CAST( fieldname * -1 AS SIGNED ) FROM ...
-- or
SELECT CONVERT ( fieldname * -1, SIGNED ) FROM ...
答案 1 :(得分:1)
如果您希望unsigned int变量中的值为负,则不会得到它,因为数据类型为 unsigned 。它只能支持+ ve值。
对于数据类型 int :有符号范围是-2147483648到2147483647.无符号范围是0到4294967295。
乘以-1会发生,结果也将是相同的数据类型(unsigned int),其MSB(最高有效位)将为1来表示负数。
将结果转换或转换为有符号的int以获得所需内容。