Javascript Вопрос: Как преобразовать шестнадцатеричное число в старшие и младшие 32-битные значения - PullRequest
1 голос
/ 26 января 2011

Мне нужно несколько строк кода Javascript, который будет принимать шестнадцатеричное число (в форме строки из 16 символов) и преобразовывать его в две переменные, представляющие старшие и младшие 32 бита 64-битного исходного значения.

Я пытаюсь использовать функцию iTunes COM «ItemByPersistenID» для воспроизведения песни в iTunes с помощью скрипта Windows. Но у меня есть только шестнадцатеричное значение PersistentId, а функция принимает только 32-битные старшие и младшие биты.

Определение функции (из документации iTunes COM SDK)

функция TrackCollection: ItemByPersistentId (длинный highID, длинный lowID)

где параметр "highID" - это "старшие 32 бита 64-битного постоянного идентификатора", а "lowID" - "старшие 32 бита 64-битного постоянного идентификатора".

Ответы [ 2 ]

1 голос
/ 26 января 2011

Попробуйте

var loNibble = parseInt( hexValue.substring(8,16) , 16 ) ;
var hiNibble = parseInt( hexValue.substring(0,8)  , 16 ) ;
0 голосов
/ 26 января 2011

У Николая хороший ответ.В гипотетическом случае, что шестнадцатеричная строка не имеет начальных нулей, вы можете сделать:

var a=hexstr.match(/(.*?)(.{0,8})$/);
var lo=parseInt(a[2],16);
var hi=parseInt(a[1],16);
...