目前我在MySQL搜索功能做十六進制字符串之間的轉換成二進制表示,例如:十六進制轉換爲二進制MySQL中
0000 -> 0000000000000000
00AA -> 0000000010101010
FFFF -> 1111111111111111
我已經嘗試
UNHEX('00AA')
CAST('00AA' AS BINARY)
CONVERT('00AA', BINARY)
但沒有得到我想要的結果。
目前我在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)。
謝謝,它可以始終顯示爲16位,嘗試00AA - > 10101010,它可以顯示0000000010101010 – Dels 2011-04-18 07:06:36