Ну, в случае локальной переменной ясно, что означает «раньше», поскольку поток программы между объявлением (в методе) и ссылкой последователен. В случае полей, объявленных вне метода, компилятор никогда не знает, какой код будет использоваться, когда он не сможет сгенерировать ошибку, поскольку, возможно, какой-либо другой метод будет инициализировать поле до его использования.
Число в шестнадцатеричном формате:
(format "%X" 255) ;; => "FF"
Вы также можете дополнить значение нулями:
(format "%03X" 255) ;; => "0FF"
Где 0
- это символ, используемый для заполнения, а 3
- это число пространств для заполнения.
Шестнадцатеричная строка для числа
(string-to-number "FF" 16) ;; => 255
16
означает «читается как base-16».
Если вы просто хотите ввести шестнадцатеричное число в Emacs, нет необходимости вызывать преобразование строки в число
, просто используйте #x
синтаксис читателя:
#xFF
==> 255
Вы также можете использовать #b
для двоичных чисел, #o
для восьмеричных чисел или # 36r
для базы 36:
#b10011001
==> 153
#o777
==> 511
#36rHELLO
==> 29234652
См. раздел 3.1 Основы целых чисел в Руководстве по Emacs Lisp