Как определить 0x0001 (и такие) в Javascript? - PullRequest
0 голосов
/ 01 февраля 2012

Я смотрю на исходный код проекта C ++, похожий на тот, который я делаю в Javascript для справки.

В C ++ у меня есть

#define FIRST_THING 0x0001
#define SECOND_THING 0x0002
...

Что означают эти значения? И как бы я определил это в Javascript? Все будет плохо, если я попытаюсь использовать 0x0001 и т. Д., Могу ли я просто сделать

var FIRST_THING = 1
var SECOND_THING = 2

или это совсем другое?

Ответы [ 3 ]

4 голосов
/ 01 февраля 2012

0x0001 является интегральной константой в базе 16, то есть шестнадцатеричной.Это все еще 1 в базе 10. Так что да, ваш пример эквивалентен, но знаете ли вы, как мысленно проанализировать 0xBC?Если нет, то вам нужно изучить произвольную базовую арифметику или, по крайней мере, освоить hex, поскольку любой программист должен знать это.

Иногда легче просматривать числа в шестнадцатеричной форме, поскольку они представляют битовые комбинации.В шестнадцатеричном формате две цифры соответствуют байту, так что вы сразу поймете, что 0xFF - это 255 base 10 и 11111111 base 2. Некоторое время работайте над проектами более низкого уровня, и это станет второй натурой.

В вашем примере C ++ интегральные константы заменяются текстовым препроцессором (т. Е. Все вхождения FIRST_THING заменяются на 0x0001 до компиляции кода), у вас нет такого инструмента в javascript, так что просто присвойте значения переменным напрямую.

Вы не можете создавать «константы» в javascript, поэтому вам нужно убедиться, что вы не изменили их.Тем не менее, вы можете просто написать

firstThing = 0x0001;

И это будет работать так же, как в примере C ++, т.е. firstThing принимает значение 1.

2 голосов
/ 01 февраля 2012

В C ++ это константы препроцессора в шестнадцатеричном формате.

В javascript препроцессор отсутствует.

0 голосов
/ 01 февраля 2012

посмотрите на Есть ли константы в JavaScript?

Констант нет, но соглашение может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...