MYSQL按位操作
我试图理解MySQL中的位运算符 我有:MYSQL按位操作,mysql,binary,bit-manipulation,bitwise-operators,Mysql,Binary,Bit Manipulation,Bitwise Operators,我试图理解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 使用从位中选择1&51是否要求第一位(1)同时出现在1和51中,如果是,
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
使用从位中选择1&51
是否要求第一位(1)同时出现在1和51中,如果是,则我理解这一点
但是SELECT 6&51 FROM bits=2
对我来说没有意义,因为第6位应该是32(?),而不是6,因为6是由第2位和第4位(?)组成的,但在51中存在32
所以我有点搞不清楚这是怎么回事,有人能解释一下吗?“6”不是指第六位。它指的是二进制值。带8位:00000110
如果需要第六位,请使用“1”或“6”来表示第六位。它指的是二进制值。带8位:00000110
如果需要第六位,请使用1这两个参数都不是位的索引-这意味着您用二进制表示每个数字,并在每个位之间独立执行操作
6 in binary: 000110
51 in binary: 110011
AND ======
000010
结果,000010
,是2的二进制表示
(请注意,为了清晰起见,前面的零被截断了)这两个参数不是位的索引-它意味着您用二进制表示每个数字,并在每个位之间独立执行操作
6 in binary: 000110
51 in binary: 110011
AND ======
000010
结果,000010
,是2的二进制表示
(请注意,为了清晰起见,前面的零被截断了)所以Mysql从右向左,而不是像PHP一样从左向右?@imperium2335。文档描述了“1所以Mysql是从右向左,而不是像PHP一样从左向右”@imperium2335…文档描述了“1所以它说位“2”在6和51中都存在,即使4不存在?是的。6=4+2; 51=32+16+2+1SO4&51是0,因为4:000100和51:110011,4中的位在51中没有使用?@imperium2335是的,没错。所以4 | 51会返回4,因为000100在4中?所以它说位“2”在6和51中都存在,即使4不是?是的。6=4+2; 51=32+16+2+1SO4&51是0,因为4:000100和51:110011,4中的位在51中没有使用?@imperium2335是的,没错。所以4 | 51会返回4,因为000100在4中?