I'd like to know how to swap the Endianness of a hex value with javascript (ex: 4075 -> 7540, 3827 -> 2738) If so, how? Thanks.
EDIT: Thanks @kay, what I want to do is swap the hex's Endianness.
I'd like to know how to swap the Endianness of a hex value with javascript (ex: 4075 -> 7540, 3827 -> 2738) If so, how? Thanks.
EDIT: Thanks @kay, what I want to do is swap the hex's Endianness.
Share Improve this question edited Oct 30, 2011 at 17:08 Kijewski 26k14 gold badges107 silver badges147 bronze badges asked Oct 30, 2011 at 16:13 skimberk1skimberk1 2,0943 gold badges21 silver badges27 bronze badges 10- 2 Your example does not reverse the value... – ThiefMaster Commented Oct 30, 2011 at 16:14
-
Of course it's possible, JavaScript has a perfectly rich
String
type. What's the question? – T.J. Crowder Commented Oct 30, 2011 at 16:15 -
2
Your examples are not consistent please fix them. Also use
@
to notify when you post ment or edit otherwise those who mented won't get any notification. – Shadow Wizard Commented Oct 30, 2011 at 16:21 - 3 You want 0xABCD to bee 0xCDAB, i.e. swap its Endianness? – Kijewski Commented Oct 30, 2011 at 16:23
- 1 You still can't be bothered to fix your examples? – T.J. Crowder Commented Oct 30, 2011 at 16:37
1 Answer
Reset to default 19To swap the endianness of a number 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
In one long line:
alert(parseInt((0x01234567).toString(16).replace(/^(.(..)*)$/, "0$1").match(/../g).reverse().join(""), 16))