пишут, что
Идентификатор может начинаться только с буквы! Это позволяет отличать его от числа
это же вызывающе неверная (точнее неполная, "не вся правда") информация!
Можно подумать, что в этом случае число может начинаться не только с цифры.
Если бы в кодировке символов и на клавиатуре шестнадцатеричные символы располагались бы отдельно,
то да, всё было бы хорошо. Но это же не так.
Нам предлагают добавлять к числам префиксы (потому что в текстах программ чисел меньше, чем идентификаторов)
или постфиксы AAш- последнее вообще не очень похоже на полное решение, отличающееся от идентификатора,
но может быть сделано таковым (хотя и затруднит разбор по сравнению с разбором префикса).
В качестве префиксов предлагают:
*) либо служебные символы ( есть даже символ числа на клавиатуре - "№", только он не используется по такому назначению)
№ГДЕ0(16)
*) либо ноль и что-нибудь (0шГДЕ0).
Если писать основание системы счисления в конце в скобках, то добавления нуля достаточно.
0ГДЕ0(16)
тут первая цифра отличает число от идентификатора, а операция () для чисел указывает основание.
это на два символа длиннее, чем вариант из статьи в теме шестнадцатеричные цифры по-русски
0ГДЕ0(16)
16"ГДЕ0
0шГДЕ0
и на три символа длиннее варианта с 0ш, но мой вариант ранее не был предложен и мне он кажется возможной альтернативой.
Вариант с 0ш и 0б в принципе возможен, потому что не может в двоичном числе встретиться шестнадцатеричная цифра "Б" - 0бБ, только 0б1... или 0б0...
но выглядит мудрёным.
У моего же варианта есть скрытый плюс - независимость языка от аппаратной платформы. Начнут кодировать программы в троичной логике для ДНК,
а я рраз и напишу 01221012(3), другим же прийдётся обновлять транслятор (или в частном случае - компилятор/интерпретатор) для обработки префикса 0т
Ловлю тапки.