如何将四字符数组转换为整数?
答案 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);
如果取决于您填充数组的顺序..