簡體   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