2011-10-30 87 views
-1

我想知道如何用JavaScript替換十六進制值的字節順序(例如:4075 - > 7540,3827 - > 2738) 如果是這樣,怎麼辦? 謝謝。Swap Endianness javascript

編輯:謝謝@kay,我想要做的是交換十六進制的Endianness。

+2

您的例子沒有扭轉值... – ThiefMaster

+0

中當然這是可能的,JavaScript有一個非常豐富的'String'類型。問題是什麼? –

+0

四進制4E20十進制爲20000。那麼你的目標是什麼?請更好地解釋。 –

回答

14

要交換一些字節序v

var v = 0x;     // 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((0x).toString(16).replace(/^(.(..)*)$/, "0$1").match(/../g).reverse().join(""), 16)) 
+1

+1,但失敗,前導零。 – pimvdb