gpt4 book ai didi

sql-server - "&"运算符在transact sql中的使用

转载 作者:行者123 更新时间:2023-12-03 12:38:45 24 4
gpt4 key购买 nike

我无法理解 & 运算符在以下查询中的用法:

select Flags & 1 from tFlags where Flags = 524675
output: 1

select Flags & 1 from tFlags where Flags = 525698
output: 0

我知道它是按位运算符。我不明白编写查询的人怎么能知道它是 0 还是 1 或其他任何东西。以及为什么它等于 0 或 1

最佳答案

& 是按位 AND(仅 1 & 1 => 1):

LiveDemo

CREATE TABLE #tFlags(Flags INT);

INSERT INTO #tFlags VALUES (524675), (525698);

select *
,[bitwise AND] = CONCAT(Flags, '& 1 = ')
,[result] = Flags & 1
from #tFlags;

工作原理:

000010000000000110000011   524675
000000000000000000000001 1 &
------------------------
000000000000000000000001 1

和:

000010000000010110000010   525698
000000000000000000000001 1 &
------------------------
000000000000000000000000 0

简单的答案是:

  • 奇数 & 1 = 1
  • 偶数 & 1 = 0

编辑:

Number & 255:可以去掉除第一个字节以外的数据。

00000001 00101100    300
00000000 11111111 255 &
-----------------
00000000 00101100 44

重点是您可以将二进制数和按位运算视为掩码,并使用它来根据特定位置设置/重置/异或值。

关于sql-server - "&"运算符在transact sql中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079565/

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