2016-08-31 2 views
1

Я хочу преобразовать 48-битное двоичное число (в строковом формате) в HEX (12 символов). И то же самое в обратном порядке.

Eg
BIN2HEX & HEX2BIN Conveion in PHP

  • бинарный '000000000000000000000000000000000000000000000000' в шестнадцатеричный '00000000000'
  • двоичное '111111111111111111111111111111111111111111111111' в шестнадцатеричном 'FFFFFFFFFFFF'
  • шестигранной 'FFFFFFFFFFFF' в двоичный '111111111111111111111111111111111111111111111111'
  • гекса ' 00000000000 'в двоичный' 0000000000000000000000000000000000000000000000000000


Пробовал BIN2HEX по умолчанию(), DecHex (BinDec ($ двоичная)) и т.д.

Я новичок поэтому, пожалуйста, объясните подробно.

ответ

1

dechex(bindec($binary)) должно было работать нормально, но вы не говорите, в чем проблема.

В принципе, hex2bin предназначен для кодирования двоичных данных, а не двоичной строки. Для простоты вам может потребоваться использовать встроенную функцию base_convert, например.

echo base_convert('FFFFFFFFFFFF', 16, 2); 
// 111111111111111111111111111111111111111111111111 

echo base_convert('111111111111111111111111111111111111111111111111', 2, 16); 
// ffffffffffff 

Обратите внимание, что для ваших «нулевых» примеров вы получите только один ноль. Нет реальной концепции длины с нулевым номером в любой базовой системе, о которой я знаю.

Смежные вопросы