Подписаться на блог
В Твиттере

Реплики и ссылки на заметки

В Фейсбуке

Ссылки на заметки

Вконтакте

Ссылки на заметки

В Телеграме

Ссылки на заметки

В Тумблере

Заметки целиком

В Же-же

Заметки целиком

По РСС

Заметки целиком

Если что-то из этого не работает, напишите мне: ilyabirman@ilyabirman.ru.

О шестнадцатеричных цифрах больших, чем 9

Шестнадцатеричные цифры a, b, c, d, e и f нужно писать исключительно в нижнем регистре. Читателю совершенно необязательно проводить время с лупой перед монитором, пытаясь различить 8 и B, 0 и D. Вывод различными программами этих цифр в верхнем регистре следует считать багом.
Подписаться на блог
Поделиться
Отправить
31 комментарий
Шляпа
> цифрах больших, чем 9
Разве цифры можно сравнивать по принципу «больше-меньше»? Это ж не числа.
Илья Бирман
Тоже задаюсь этим вопросом, да.
Скар
А что говорит ISO и иже с ним?
Анатолий Rr Буров
У цифр порядок есть, поэтому сравнивать их вполне правомерно.
BOLK
Где это ты увидел настолько мелкие цифры, чтобы путать 8 и B?
Ярослав
Болк, даже если не путать 8 и B, запись шестнадцатеричных цифр в нижнем регистре всё равно сможет намного улучшить их восприятие:
b8e82f
B8E82F
Неужели второй вариант читается легче и быстрее? Никогда не поверю.
Я
Ярослав,
для меня оба — бессмысленный набор букв и чисел. Что я делаю не так?
Andrew Marcus
Это скорее вопрос написания ЗаБоРчИкОм и КАПСОМ.
Павел
Мне кажется, все равно. Никто не спутает 8 и B. Даже 0 и О сложно спутать (1201 и 12O1). Если шестнадцатиричных чисел много (например, при просмотре в HEX-редакторе), то проще читать в верхнем регистре, т. к. в нижнем получается настоящий винегрет. 
Guest
Смотря где. В си-подобном коде, например, надо писать в верхнем регистре, а то получится каша, которую не разобрать (это из-за ужасной разделительной буквы x). Сравните: 0xabcdef и 0xABCDEF. Шестнадцатеричные цифры должны иметь ту же высоту, что и десятичные.
Кроме того, следует отметить, что их, как и любой код, необходимо отображать моноширинным шрифтом, чтобы размер по горизонтали тоже был постоянным (особенно этим страдает цифра f). В досе, кстати, такой проблемы не было, там, во-первых, все шрифты были моноширинными, во-вторых, ноль перечёркивался, его было ни с чем не спутать. Цифру B с восьмёркой спутать нереально при всём желании.
Игорь
Илья, если возникает проблема различения 8 и B, 0 и D, то вероятнее стоит поменять шрифт. Хотя не упомню в консоли ни одного случая путаницы. Да и на этой странице тот вариант, который я вижу спутать весьма проблематично.
Ярослав, вы не поверите, но да, второй вариант читается лучше. Возможно для меня имеет значение привычка, но тем не менее.
Николай Товеровский
Проблемы не существует, в Африке полно голодных детей, а вы...

Но если заняться нечем, то можно подойти к шестнадцатеричным цифрам как к десятичным. Номера телефонов удобнее читать, когда цифры разделены на группы, тут можно также
b8e82f
B8E82F
Николай Товеровский
Простите, палец соскочил

b8-e8-2f
B8-E8-2F
Дину Александр
На самом деле, «читатель» чисел в системах счисления больших десятичной не парится. Говорю вам как «читатель».
Дмитрий Ачкасов
2Guest:
#define h_ 0x
Теоретически должно помочь.

А вообще можно и подумать над разработкой специальных глифов для шестнадцатеричной системы счисления.
Например в виде отдельного шрифта адаптировать вот эти: http://en.wikipedia.org/wiki/File:Bruce_Martin_hexadecimal_notation_proposal.png
Анатолий Rr Буров
А ещё можно проявить фанатизм и использовать минускульные цифры :)
Guest
2 Дмитрий Ачкасов:
Ваш вариант не поможет, т. к. h_ и 0x — это не лексемы, а часть лексем.
Правильно так: #define hex(a) 0x##a
Но этот способ бессмысленный, 0x проще и яснее.
Денис
Выбираю все-таки традиционное B8E82F, так как в редакторах программ и прочего используются шрифты с засечками и отличие B от 8 сразу видно.
Денис
http://en.wikipedia.org/wiki/File:Bruce_Martin_hexadecimal_notation_proposal.png о ужас и главное как сразу наглядно видно чем такая нотация хуже обычной буквенно-цифровой записи.
Денис Киселев
Я тоже среди тех, кому верхний регистр читать удобнее из-за одинаковой высоты цифр. «Заборчик», на мой взгляд, затрудняет восприятие сильнее, чем похожесть 8 и B, 0 и D. Просто не нужно выбирать слишком мелкий шрифт, и тогда проблема похожести уменьшается почти до нуля. 
A-Z
Шестнадцатеричные цифры A, B, C, D, E и F нужно писать исключительно в верхнем регистре. Читателю совершенно необязательно проводить время с лупой перед монитором, чтобы найти очевидные различия между 8 и B, 0 и D. Вывод различными программами этих цифр в нижнем регистре следует считать багом.
Азат Аюпов
По-моему, гораздо неудобнее читать числа, где буквенные литеры в нижнеем регистре. К тому же, шестнадцатеричные числа обозначаются и буквой h после числа. Вдвойне неудобно.
Сравните: 6ff8a4ah 6FF8A4Ah
А с пробелами еще лучше: 06 FF 8A 4Ah И нолик спереди.
Сергей Соляник
Шестнадцатиричные в нижнем регистре?! Нет пути!
Ужасны же и совершенно не видимы в текстах, а должны выделяться же!
Илья Бирман
Вы заблуждаетесь.
Ваня Бибилов
А зачем вообще где-то использовать шестнадцатеричные числа? Ну, корме как на лабораторных работах по информатике по переводу чисел из одной системы счисления в другую? Смотреть дампы памяти по вечерам?
Сергей Соляник
Заблуждаюсь в чём: в том, что должны выделяться или в том что ужасны?
Взять же любой шрифт — цифры отличаются, как минимум, высотой от букв. Когда число в тексте похоже на текст, а не на число, это ужасно. Особенно ужасно, если этот текст не раскрашен синтаксически.

Да и вообще — это же вы так думаете, что я заблуждаюсь, я-то уверен, что всё совсем наоборот 8-D
Андрей Шитов
Всё зависит от того где они используются и сколько их.
В исходниках на различных языках программирования я пишу шестнадцатеричные числа в верхнем регистре.
В html, css, xml, и т. д. я использую нижний регистр, т. к. стараюсь не использовать верхний регистр в языках разметки (эстет чёртов). Числа записанные в верхнем регистре будут выделяться из общей массы и отвлекать от поиска необходимой информации (сами числа я все-равно ищу по именам параметров).
A-Z
>> Илья Бирман 26 декабря 2009, 18:35
>> Вы заблуждаетесь.

Это просто сокрушительная аргументация!
Впрочем, трудно как-то связно аргументировать точку зрения по такому вопросу. Я вот тоже не могу объяснить, почему в нижнем регистре буквенные числа смотрятся омерзительно.
Илья Бирман
То, что у вас плохой вкус, не обязательно подчёркивать столь сильным наречием.

Свою точку зрения я аргументировал в заметке, к которой вы пишете пустой комментарий, цитируя то, что не поняли. Сергей предложил ни на чём не основанный тезис («Шестнадцатеричные числа должны выделяться в тексты»), очевидно, являющийся чушью на постном масле. С тем же успехом можно утверждать, что тексте должны выделяться все обстоятельства образа действия или все слова с чётным количеством гласных букв. Подобная странная точка зрения, конечно, является заблуждением.
A-Z
«Очевидно, что предложения, начинающиеся со слова „очевидно“ выдвигают какие-то сомнительные тезисы».
Вся ваша аргументация, Илья, — это конструкции вида «у вас плохой вкус, а у меня хороший», «вы ничего не поняли» и «Сергей предложил тезис, являющийся чушью на постном масле». Вы много говорите о том, что мы не правы, но никак не подтверждаете свою правоту.
На мой взгляд, настоящая ерунда — это предположение о том, что возможно перепутать 8 и B и 0 и О.
Илья Бирман
:-)
A-Z
Нда. Еще один убедительнейший ответ. Даже что противопоставить таакой железной логике.
Подразумевается, что тут я должен почувствовать себя дураком, но тонкость в том, что я по-прежнему считаю, что вы абсолютно не правы.
Илья Бирман
Ну о чём тут говорить? Вы утверждаете, что невозможно перепутать 0 и О. Это же диагноз сразу. Пойдите спросите у 100 своих знакомых, возможно ли перепутать 0 и O, ознакомьтесь с действительностью.
A-Z
* даже не знаю.
Опечатался.
A-Z
Пожалуйста, не ставьте мне диагноз.
Поставьте его лучше тому, кто использует в системе декоративные шрифты в качестве основных — только в них возможно допущение подобной ошибки (учитывая, что половина декоративных шрифтов вообще читается через пень-колоду). Что касается вменяемых, традиционных шрифтов (TNR, Tahoma, Arial, даже, Господи прости, Comic Sans и ... что там у вас в Маках?) — то тут надо быть совсем слепым, чтобы перепутать эти символы.
Сергей Соляник
Тексты, в которых используется шестнадцатиричная система счисления заслуживают выделения чисел. Особенно в книгах. Впрочем, корни различий в наших с вами убежденях относительно необходимости выделения чисел в тексте лежат там же, где и восприятие разными людьми с разными результатами блок-схем и псевдокода.

Визуалы и эти, как их, которые визуально не любят отето... ;-)

Пользовательский интерфейс
Доступен первый раздел
электронного учебника

Популярное