繁体   English   中英

MYSQL按位运算

[英]MYSQL Bitwise operations

我试图理解MySQL中的按位运算符。

我有:

SELECT 1 & 51 FROM bits = 1
SELECT 2 & 51 FROM bits = 2
SELECT 3 & 51 FROM bits = 3
SELECT 4 & 51 FROM bits = 0
SELECT 5 & 51 FROM bits = 1
SELECT 6 & 51 FROM bits = 2

对于SELECT 1 & 51 FROM bits ,这是问第一个(1)是否同时出现在1和51中,如果可以的话,我理解这一点。

但是SELECT 6 & 51 FROM bits = 2对我来说没有意义,因为第6位是32(?),不是6,因为6是由第2位和第4位(?)组成的,但是32是现在51岁。

因此,我对此感到有些困惑,请问有人可以解释吗?

“ 6”不代表第六位。 它指的是二进制值。 8位:00000110。

如果要第六位,请使用1 << 6或32。

这两个参数不是位的索引-这意味着您用二进制表示每个数字,并在每个位之间独立执行操作。

 6 in binary: 000110
51 in binary: 110011
AND           ======
              000010

结果000010是2的二进制表示形式。

(请注意,为清楚起见,前面的零被截断了)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM