2012-07-07 47 views
0
select (bin(~'101010101010101')) as Result; 

Result is : '1111111111111111101001000010000111000000110011111000000101001010' 

這是真的嗎?如何在MySQL語句中使用二進制/位域文字

我希望看到這樣的結果:

'1111111111111111111111111111111111111111111111111010101010101010'

請幫助我。

+0

什麼語言是什麼? C/C++?阿達?帕斯卡爾? BASIC? FORTRAN? Common Lisp? LOLcode? – 2012-07-07 07:46:50

+0

一些SQL方言?如果是這樣,什麼數據庫? – Thilo 2012-07-07 07:47:23

+0

是的,這是MySql。 – Ebrahim 2012-07-07 07:49:39

回答

1

您正在將一個字符串傳遞給按位操作。 These operations是爲MySQL中的BIGINT整數定義的,因此您可能會收到意外的結果。

你應該嘗試:

SELECT bin(~0x5555) as Result 

或:

SELECT bin(~b'101010101010101') as Result 

結果:

'1111111111111111111111111111111111111111111111111010101010101010' 
0

看起來像101010101010101被解釋爲十進制數。它的二進制表示是10110111101111000111111001100000111111010110101。補充這一點,你會得到打印結果。

相關問題