select (bin(~'101010101010101')) as Result;
Result is : '1111111111111111101001000010000111000000110011111000000101001010'
本当ですか?
私はこの結果を見ることを期待しています:
「111111111111111111111111111111111111111111111010101010101010」
お願い助けて。
select (bin(~'101010101010101')) as Result;
Result is : '1111111111111111101001000010000111000000110011111000000101001010'
本当ですか?
私はこの結果を見ることを期待しています:
「111111111111111111111111111111111111111111111010101010101010」
お願い助けて。
文字列をビット演算に渡しています。これらの操作は mysql の BIGINT 整数に対して定義されているため、予期しない結果が生じる可能性があります。
試してみてください:
SELECT bin(~0x5555) as Result
また:
SELECT bin(~b'101010101010101' ) as Result
結果:
'1111111111111111111111111111111111111111111111111010101010101010'
101010101010101 は 10 進数として解釈されるようです。そのバイナリ表現は 10110111101111000111111001100000111111010110101 です。これを補完すると、出力結果が得られます。