gpt4 book ai didi

mysql - 如何使用 mySQL 对负数进行位移以获得类似 Java、Python 等的结果?

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:38 24 4
gpt4 key购买 nike

当我想位移 -2 >> 4 时,它应该给我 -1。 python 和 java 确实给了我 -1。但是,如果我在我的 mySQL 服务器上尝试它,我会得到 1152921504606846975。我试图反转位来转换它等,但我无法得到 -1。那么有人知道如何对其进行位移以获得 -1。

最佳答案

根据documentation , MySQL 的移位运算符生成一个无符号 64 位整数。因此,如果您想获得负数的预期行为,您可以添加自己的逻辑:

WITH yourTable AS (
SELECT 4 AS val UNION ALL
SELECT -4
)

SELECT
IF(val > 0, val >> 2, -1.0*((-1.0*val) >> 2)) AS result
FROM yourTable;

这个输出:

1
-1.0

关于mysql - 如何使用 mySQL 对负数进行位移以获得类似 Java、Python 等的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56791117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com