1

我需要几行 Javascript 代码,它们将采用十六进制数字(以 16 个字符串的形式)并将其转换为两个变量,代表 64 位原始值的高 32 位和低 32 位。

我正在尝试使用 iTunes COM 函数“ItemByPersistenID”通过 Windows 脚本在 iTunes 中播放歌曲。但是我只有 PersistentId 的十六进制值,并且该函数只取高低 32 位。

函数定义(来自 iTunes COM SDK 文档)

函数 TrackCollection:ItemByPersistentId(long highID, long lowID)

其中“highID”参数是“64 位持久 ID 的高 32 位”,“lowID”是“64 位持久 ID 的低 32 位”。

4

2 回答 2

1

尝试

var loNibble = parseInt( hexValue.substring(8,16) , 16 ) ;
var hiNibble = parseInt( hexValue.substring(0,8)  , 16 ) ;
于 2011-01-26T19:45:53.253 回答
0

尼古拉斯有一个很好的答案。在十六进制字符串没有前导零的假设情况下,您可以这样做:

var a=hexstr.match(/(.*?)(.{0,8})$/);
var lo=parseInt(a[2],16);
var hi=parseInt(a[1],16);
于 2011-01-26T20:01:13.173 回答