Как преобразовать вдвое большее по сравнению с шестнадцатеричным числом?

Как насчет MYSQL replace () ?

UPDATE your_tbl_name SET content = REPLACE(content,'https://curious-api.example.pro','http://localhost')

Вы также можете ускорить процесс с помощью предложения (необязательно) WHERE Например,

UPDATE your_tbl_name SET content = REPLACE(content,'https://curious-api.example.pro','http://localhost') WHERE content LIKE '%https://curious-api.example.pro%'

Если вы хотите заменить регулярное выражение в MySQL 5.7 , вы можете попробовать это: https://gist.github.com/crx4/a9fc379d4e833fc03918 [ 116]

5
задан Allyn 8 April 2009 в 00:44
поделиться

2 ответа

Ну, как Patrick сказал, не требуется много для преобразования прошлого использования Array\#pack.

irb> [99.0].pack('G').split('').map { |ds| ds[0] }
#=> [64, 88, 192, 0, 0, 0, 0, 0]
irb> _.map { |d| "%02x" % d }
#=> ["40", "58", "c0", "00", "00", "00", "00", "00"]
irb> [99.0].pack('E').split('').map { |ds| ds[0] }
#=> [0, 0, 0, 0, 0, 192, 88, 64]
irb> _.map { |d| "%02x" % d }    
#=> ["00", "00", "00", "00", "00", "c0", "58", "40"]

Таким образом, это зависит, хотите ли Вы распаковать его со старшим байтом в нулевом индексе или байтом низкоуровневым в нулевом индексе:

      E     |  Double-precision float, little-endian byte order
      G     |  Double-precision float, network (big-endian) byte order
6
ответ дан 14 December 2019 в 13:47
поделиться

Класс массива имеет метод пакета:

a = [99.0]
s = a.pack("d")
s
=> "\000\000\000\000\000\300X@"

Это дает Вам, строка байтов, но преобразовывающий из этого для преобразовывания в шестнадцатеричную систему для печати должна быть тривиальной.

Если Вы хотите пойти другим путем, строковый класс имеет распаковать метод:

s.unpack("d")
=>[99.0]
0
ответ дан 14 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: