在MySQL中将十六进制转换为二进制



目前我在MySQL中搜索一个函数,在十六进制字符串到二进制表示之间进行转换,例如:

0000 -> 0000000000000000
00AA -> 0000000010101010
FFFF -> 1111111111111111

我已经试过了

UNHEX('00AA')
CAST('00AA' AS BINARY)
CONVERT('00AA', BINARY)

但没有得到我想要的结果。

使用CONV()函数:

CONV(string, 16, 2)

根据输入具有长度:

LPAD(CONV(string, 16, 2), LENGTH(string)*4, '0')

由于CONV()的工作精度为64位,因此转换的比特数不能超过64位,所以也可以使用以下方法:

LPAD(CONV(string, 16, 2), 64, '0')

并且您应该检查LENGTH(string) <= 16,否则您可能会得到错误的结果。

UNHEX('hex string')

将传递到函数中的字符串中的每对字符解释为两个十六进制字符,并尝试将其转换为二进制数(mysql中的二进制格式(。通过这种方式,您可以将字符串转换为二进制。但是,这不会将内容显示为二进制数字字符串。相反,结果字符串中的每2个字节都转换为特定的字符编码(例如utf8(。

相关内容

  • 没有找到相关文章

最新更新