gpt4 book ai didi

sql - sql server 中的无符号右移 '>>>' 运算符

转载 作者:行者123 更新时间:2023-12-04 23:43:39 25 4
gpt4 key购买 nike

关闭。这个问题需要debugging details .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




如何在sql server中编写无符号右移运算符?表达式就像 value >>> 0
这是例如 -5381>>>0 = 4294961915

最佳答案

T-SQL 没有位移运算符,因此您必须自己实现一个。这里有一个按位移位的实现:http://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/

您必须将整数转换为 varbinary,使用按位移位函数并转换回整数和(希望)嘿-快!这是你期待的结果。

实现和测试留给读者作为练习......

编辑 - 为了澄清我在下面的评论中所写的内容,执行此 SQL 将演示各种 CAST 给出的不同结果:

SELECT -5381 AS Signed_Integer,
cast(-5381 AS varbinary) AS Binary_Representation_of_Signed_Integer,
cast(cast(-5381 AS bigint) AS varbinary) AS Binary_Representation_of_Signed_Big_Integer,
cast(cast(-5381 AS varbinary) AS bigint) AS Signed_Integer_Transposed_onto_Big_Integer,
cast(cast(cast(-5381 AS varbinary) AS bigint) AS varbinary) AS Binary_Representation_of_Signed_Integer_Trasposed_onto_Big_Integer

结果:
Signed_Integer Binary_Representation_of_Signed_Integer                        Binary_Representation_of_Signed_Big_Integer                    Signed_Integer_Transposed_onto_Big_Integer Binary_Representation_of_Signed_Integer_Trasposed_onto_Big_Integer
-------------- -------------------------------------------------------------- -------------------------------------------------------------- ------------------------------------------ ------------------------------------------------------------------
-5381 0xFFFFEAFB 0xFFFFFFFFFFFFEAFB 4294961915 0x00000000FFFFEAFB

关于sql - sql server 中的无符号右移 '>>>' 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072333/

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