[英]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.