JavaScript - 将四字符数组转换为整数

时间:2011-01-11 12:20:50

标签: javascript arrays integer character

如何将四字符数组转换为整数?

4 个答案:

答案 0 :(得分:3)

您正在尝试将这些字符转换为ASCII字符代码,并将代码用作字节值。这可以使用charCodeAt完成。例如:

var str = "x7={";
var result = ( str.charCodeAt(0) << 24 )
           + ( str.charCodeAt(1) << 16 )
           + ( str.charCodeAt(2) << 8 )
           + ( str.charCodeAt(3) );

按预期返回2016886139。

但是,请记住,与C ++不同,JavaScript不一定使用单字节,256个字符的集合。例如,'€'.charCodeAt(0)返回8364,远远超过等效C ++程序允许的最大值256。因此,0-255范围之外的任何字符都将导致上述代码表现不稳定。

使用Unicode,您可以将上述内容表示为“砷㵻”。

答案 1 :(得分:2)

var arr = [5,2,4,0],
    foo = +arr.join('');

console.log(foo, typeof foo);

答案 2 :(得分:0)

我想这取决于你想如何将字符值映射到整数位。

一个直接的解决方案是:

var myArray = ['1', '2', '3', '4']
var myInt = (myArray[0].charCodeAt(0) << 24) | (myArray[1].charCodeAt(0) << 16) | (myArray[2].charCodeAt(0) << 8) | myArray[3].charCodeAt(0);

这会产生整数0x01020304。这在输入数组中使用整数,对于字符,结果可能会因使用的字符而异。

更新:使用charCodeAt()将字符转换为代码点。

答案 3 :(得分:0)

var chArr = ['1','2','3','4'];
var num = parseInt( chArr.join(''), 10);

var num = parseInt( chArr.reverse().join(''), 10);

如果取决于您填充数组的顺序..