Хотя это не является прямым, большинство языков также может анализировать строку. Java может преобразовать "10101000" в int с помощью метода.
Не то, чтобы это было эффективно или что-то еще ... Просто говорю, что это там. Если бы это было сделано в статическом блоке инициализации, это могло бы быть сделано во время компиляции в зависимости от компилятора.
Если вы хорошо разбираетесь в двоичном коде, даже с коротким числом довольно просто увидеть 0x3c как 4, за которыми следуют 2 нуля, тогда как даже такое короткое число в двоичном виде будет 0b111100, что может повредить ваши глаза вы были уверены в количестве единиц.
0xff9f - это ровно 4 + 4 + 1 единицы, 2 нуля и 5 единиц (на первый взгляд битовая маска очевидна). Попытка отсчитать 0b1111111110011111 намного раздражает.
Я думаю, что проблема может заключаться в том, что разработчики языка всегда зацикливаются на hex / восьмеричном / двоичном / любом другом и просто думают так. Если вы менее опытны, я могу полностью понять, как эти преобразования не были бы такими очевидными.
Эй, это напоминает мне кое о чем, что я придумал, думая о базовых преобразованиях. Последовательность - я не думал, что кто-нибудь сможет выяснить «Следующее число», но один парень действительно понял, так что это решаемо. Попробуйте:
10
11
12
13
14
15
16
21
23
31
111
Edit:
Кстати, эта последовательность может быть создана путем подачи последовательных чисел в единую встроенную функцию в большинстве языков (Java точно).