@Galdar
Web, JS, PHP, NGINX, Linux

Как переводить шестнадцатеричные строки?

Не могу понять как перевести строку:
01 17 80 01 11 02 DF 03 38 36 38 32 30 34 30 30 35 36 34 37 38 33 38 04 32 00 86 9C
Перевод:
Перевод

01 – заголовок
17 80 – длина, старший бит – имеются неотправленные данные, его маскируем, получаем длину 23 байта
01 – тэг 01 – тип прибора
11 – значение тэга 01 = 17 – Galileosky GPS/ГЛОНАСС 5.0.11
02 – тэг 02 – версия прошивки
DF – значение тэга 02 = 223
03 – тэг 03 – IMEI
38 36 38 32 30 34 30 30 35 36 34 37 38 33 38 – значение тэга 03 – «868204005647838»
04 – тэг 04 – номер прибора, задаётся в настройках
32 00 – значение тэга 04 = 50
86 9C – контрольная сумма


Хочу разобраться как при получении шестнадцатеричных данных, преобразовать их в читаемый вид. Пока не могу найти нормальные статьи для JS, выдает для Java)

Может кто сможет объяснить или знает хорошую статью!

Заранее спасибо!
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Для начала вычислите смещение и длину для всех интересующих данных. Для конвертации достаточно функции parseInt
Если вам нужен заголовок, например
const headerHex = data.substring(0, 2) // получаем фрагмент, в котором содержится заголовок
const header = parseInt(headerHex, 16) // переводим в десятичную систему
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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