首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按位And运算符

按位And运算符
EN

Stack Overflow用户
提问于 2013-03-22 04:09:04
回答 1查看 246关注 0票数 0

有人能用更简单的术语解释一下吗?

170的二进制表示是0000 0000 1010 1010。75的二进制表示是0000 0000 0100 1011。对这两个值执行按位AND操作会产生二进制结果0000 0000 0000 1010,它是十进制10。

代码语言:javascript
运行
复制
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010

一旦我知道正在做什么,这将使我点击。我对二进制文件有一个基本的了解,并且知道几个即兴的……例如,用二进制表示的1将是00000001,2将是00000010,3将是00000011,4将是00000100,5将是00000101,6将是00000110。所以我能理解当你每次上升一个数字时发生的事情。

我也理解当这位sql开发人员在减法时发生了什么,但当她使用t-sql代码来寻找答案时,并没有遗漏什么……关于此链接中所陈述的内容。

http://sqlfool.com/2009/02/bitwise-operations/

EN

回答 1

Stack Overflow用户

发布于 2013-03-22 04:15:05

将示例中的单个二进制数视为列。如果在特定列的两个输入行中都有1,则该列的输出为1。否则为0。

AND运算符可用于“掩码”值。因此,如果你只想要一个数字的前四个低阶位,你可以将它与15进行AND运算,如下所示:

代码语言:javascript
运行
复制
0010 1101 1110 1100
0000 0000 0000 1111
-------------------
0000 0000 0000 1100  <-- the value of the first four bits in the top number

这就是您链接的SQL示例中正在发生的事情。

代码语言:javascript
运行
复制
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday

对应于位掩码:

代码语言:javascript
运行
复制
0000 0001 = Sunday
0000 0010 = Monday
0000 0100 = Tuesday
0000 1000 = Wednesday
0001 0000 = Thursday
0010 0000 = Friday
0100 0000 = Saturday
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15557063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档