Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL按位操作_Mysql_Binary_Bit Manipulation_Bitwise Operators - Fatal编程技术网

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中,如果是,

我试图理解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 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中?