交换Endianness javascript

时间:2011-10-30 16:13:37

标签: javascript hex endianness

我想知道如何用javascript交换十六进制值的Endianness(例如:4075 - > 7540,3827 - > 2738) 如果是这样,怎么样? 感谢。

编辑:谢谢@kay,我想要做的是交换十六进制的Endianness。

1 个答案:

答案 0 :(得分:16)

要交换数字 v 的字节顺序:

var v = 0x01234567;                 // input number
var s = v.toString(16);             // translate to hexadecimal notation
s = s.replace(/^(.(..)*)$/, "0$1"); // add a leading zero if needed
var a = s.match(/../g);             // split number in groups of two
a.reverse();                        // reverse the groups
var s2 = a.join("");                // join the groups back together
var v2 = parseInt(s2, 16);          // convert to a number

alert(s2); // "67452301"
alert(v2); // 1732584193

Live copy

总的来说:

alert(parseInt((0x01234567).toString(16).replace(/^(.(..)*)$/, "0$1").match(/../g).reverse().join(""), 16))