0
select (bin(~'101010101010101')) as Result;

Result is : '1111111111111111101001000010000111000000110011111000000101001010'

本当ですか?

私はこの結果を見ることを期待しています:

「111111111111111111111111111111111111111111111010101010101010」

お願い助けて。

4

2 に答える 2

1

文字列をビット演算に渡しています。これらの操作は mysql の BIGINT 整数に対して定義されているため、予期しない結果が生じる可能性があります。

試してみてください:

SELECT bin(~0x5555) as Result

また:

SELECT bin(~b'101010101010101' ) as Result

結果:

'1111111111111111111111111111111111111111111111111010101010101010'
于 2012-07-07T08:03:41.053 に答える
0

101010101010101 は 10 進数として解釈されるようです。そのバイナリ表現は 10110111101111000111111001100000111111010110101 です。これを補完すると、出力結果が得られます。

于 2012-07-07T07:52:26.730 に答える