#javascript #hex #endianness
#javascript #шестнадцатеричный #порядковый номер
Вопрос:
Я хотел бы знать, как поменять местами порядковый номер шестнадцатеричного значения с помощью javascript (например: 4075 -> 7540, 3827 -> 2738) Если да, то каким образом? Спасибо.
РЕДАКТИРОВАТЬ: Спасибо @kay, то, что я хочу сделать, это поменять местами порядковый номер шестнадцатеричного кода.
Комментарии:
1. В вашем примере значение не меняется на обратное…
2. Конечно, это возможно, JavaScript имеет совершенно богатый
String
тип. В чем вопрос?3. Ваши примеры не согласуются, пожалуйста, исправьте их. Также используется
@
для уведомления, когда вы публикуете комментарий или редактируете, иначе те, кто прокомментировал, не получат никакого уведомления.4. Вы хотите, чтобы 0xABCD стал 0xCDAB, то есть поменял его порядковый номер ?
5. Вы все еще не можете исправить свои примеры?
Ответ №1:
Чтобы поменять порядковый номер числа 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))