有人能用更简单的术语解释一下吗?
170的二进制表示是0000 0000 1010 1010。75的二进制表示是0000 0000 0100 1011。对这两个值执行按位AND操作会产生二进制结果0000 0000 0000 1010,它是十进制10。
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/
发布于 2013-03-22 04:15:05
将示例中的单个二进制数视为列。如果在特定列的两个输入行中都有1,则该列的输出为1。否则为0。
AND运算符可用于“掩码”值。因此,如果你只想要一个数字的前四个低阶位,你可以将它与15进行AND运算,如下所示:
0010 1101 1110 1100
0000 0000 0000 1111
-------------------
0000 0000 0000 1100 <-- the value of the first four bits in the top number这就是您链接的SQL示例中正在发生的事情。
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday对应于位掩码:
0000 0001 = Sunday
0000 0010 = Monday
0000 0100 = Tuesday
0000 1000 = Wednesday
0001 0000 = Thursday
0010 0000 = Friday
0100 0000 = Saturdayhttps://stackoverflow.com/questions/15557063
复制相似问题