我想知道如何用javascript交换十六进制值的Endianness(例如:4075 - > 7540,3827 - > 2738) 如果是这样,怎么样? 感谢。
编辑:谢谢@kay,我想要做的是交换十六进制的Endianness。
答案 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
总的来说:
alert(parseInt((0x01234567).toString(16).replace(/^(.(..)*)$/, "0$1").match(/../g).reverse().join(""), 16))