select (bin(~'101010101010101')) as Result;
Result is : '1111111111111111101001000010000111000000110011111000000101001010'
是真的吗?
我希望看到这个结果:
'1111111111111111111111111111111111111111111111111010101010101010'
请帮帮我。
答案 0 :(得分:1)
您正在将字符串传递给按位操作。 These operations是为mysql中的BIGINT整数定义的,因此您可能会得到意外的结果。
你应该尝试:
SELECT bin(~0x5555) as Result
或:
SELECT bin(~b'101010101010101' ) as Result
结果:
'1111111111111111111111111111111111111111111111111010101010101010'
答案 1 :(得分:0)
看起来101010101010101被解释为十进制数。它的二进制表示是10110111101111000111111001100000111111010110101。对此进行补充,即可获得打印结果。