參考鏈接:http://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/
SQL Server 官網的連接:https://docs.microsoft.com/zh-cn/sql/t-sql/language-elements/bitwise-operators-transact-sql?view=sql-server-2017
C#MSDN文檔說明: https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/index
C#代碼的
移位運算符
這些運算符的優先級比下一章節高,比上一章節低。
x << y:左移位,右側用 0 填充。
x >> y:右移位。 如果左操作數是 int
或 long
,則左位數補符號位。 如果左操作數是 uint
或 ulong
,則左位數補零。
SQL Server 的 移位運算符處理
a << b = a * power(2, b)
a >> b = a / power(2, b)
SELECT
CAST(0xFF * POWER(CAST(256 AS BIGINT), 0) AS BINARY(12)) AS Shift0,
CAST(0xFF * POWER(CAST(256 AS BIGINT), 1) AS BINARY(12)) AS Shift1,
CAST(0xFF * POWER(CAST(256 AS BIGINT), 2) AS BINARY(12)) AS Shift2,
CAST(0xFF * POWER(CAST(256 AS BIGINT), 3) AS BINARY(12)) AS Shift3,
CAST(0xFF * POWER(CAST(256 AS BIGINT), 4) AS BINARY(12)) AS Shift4,
CAST(0xFF * POWER(CAST(256 AS BIGINT), 5) AS BINARY(12)) AS Shift5