Консультация № 169958
28.06.2009, 10:06
0.00 руб.
0 2 2
Доброго времени суток, уважаемые эксперты!
Как можно преобразовать строку содержащую число в 16-ричной форме, например "0x0000FF", в такого же вида 16-ричное число (т.е. 0x0000FF в данном случае, а не 255 как это получается с помощью функции parseInt())?

Обсуждение

Неизвестный
28.06.2009, 20:37
общий
это ответ
Здравствуйте, Motoden.

Боюсь, Вы несколько "плаваете" в данной областиЧисло в любом случае хранится в одном формате: цепочка бит. Например, 32 бита. И все вычисления производятся с данной структурой. Если же Вы хотите вывести данное число в печатной форме, то тут уже и появляются варианты. Стандартно выводится число в десятеричной системе. Но можно задать любую другую вменяемую. Числа 255 и 0xff не могут храниться по-разному, т.к. это одно и то же число.

В приложении найденые мной примеры чтения и вывода шестнадцатеричного числа.

dec в названии зря стоит, т.к. это не перевод в десятичную систему, а чтение строки во внутренний формат. На самом деле, шестнадцатеричная система для компьютера гораздо роднее десятичной.

Приложение:
function decToHex(n)
{
return Number(n).toString(16);
}

function hexTodec (hex)
{
return parseInt(hex,16);
}
5
Неизвестный
29.06.2009, 20:31
общий
это ответ
Здравствуйте, Motoden!

var n = 5;
var s = new String(n*20);

В этом примере s будет строкой " 100". Если просто задать s как n*20, то s будет содержать число 100. Однако поскольку JavaScript является слабо типизированным языком, то эти различия не будут существенно влиять на то, что вы делаете. Таким образом зададите вы строку или число результат будет одинаковым.

4
В моём случае имеет большое значение с чем я работаю: со строкой или с числом. Собственно из-за этого у меня и возник вопрос "как?".
Форма ответа