Всякий раз, когда я работаю с шестнадцатеричными значениями, я делаю преобразование (если необходимо) в десятичное число в моей голове или с помощью конвертера. Ну, я думал, если вы работаете достаточно долго и привыкаете к шестнадцатеричному, вы просто "видите" значение (что бы это ни значило), как при чтении десятичных чисел? Я имею в виду, что через некоторое время вы можете легко считывать значения базового 16 так же, как и базовые значения 10? Когда я пишу код с шестнадцатеричными значениями, я делаю это, потому что он выглядит сексуально и плохой (а иногда потому, что 8 бит вписывается в две цифры, что иногда помогает), а не потому, что я чувствую себя как-то комфортно с ними. Таким образом, я мог бы знать, есть ли смысл пытаться привыкнуть к шестнадцатеричному, чтобы в какой-то день легко работать с ними.
Вопрос для вас, который часто работает с шестнадцатеричным
Ответ 1
Как работает мозг, становится лучше, если вы что-то много с ним делаете. Некоторые люди утверждают, что "это как мышца", но это слишком упрощает.
Итак, если вы делаете шестнадцатеричные преобразования день и время, вы в конечном итоге сможете преобразовать достаточно большие числа в поле зрения, и вы можете выполнить шестнадцатеричную арифметику, не нуждаясь в преобразовании в десятичный разряд и из него.
Я однажды провел вечер, запоминая первые 100 цифр пи.
Так что?
Эйнштейн цитируется как никогда не запоминающий номера телефонов. Он сказал: "Это то, что у меня есть для телефонной книги".
То же самое дело. Если вы хотите произвести впечатление на себя и, возможно, на ваших друзей, конечно, почему бы и нет. Но это умственное упражнение, а не действительно полезное умение.
При кодировании, если вы не работаете преимущественно с ассемблером, вы будете использовать шестнадцатеричные числа только редко. Имеет смысл использовать шестнадцатеричные числа в контекстах, где эти числа будут бит-twiddled. например Вы можете замаскировать байты с помощью AND-ing против 0xFF. Числа, связанные с побитовым сдвигом, битами знака, OR и XOR, также могут иметь большой смысл как hex. Числа, используемые для повседневной арифметики, обычно лучше всего выражать в десятичной форме.
Как только вы закончите с помощью трюков в салонах, одной из самых важных целей программирования является написать код, который другие (и, возможно, когда-нибудь вы) можете легко прочитать и понять. Использование гексагона в правильных местах хорошо; использование его в неправильных местах является обфускацией и плохим.
Ответ 2
Вы не должны использовать hex, потому что "он выглядит сексуально и плохой (а иногда потому, что 8 бит вписывается в две цифры)". Вместо этого используйте любую цифровую систему более подходящую.
Шестнадцатеричный более подходит, когда вы работаете с бинарными битами (например, бит-масками, флагами и т.д.), так как они тесно соответствуют двоичным файлам и (с некоторой практикой), вы можете быстро их распознать в шестнадцатеричном числе.
Десятичный более подходит при работе с "нормальными", реальными числами.
Ответ 3
Какой большой вопрос (+1 к вам), лично, я использую hex для описания цвета, и я использую его каждый день, продолжающийся 15 лет - так что теперь я могу удивить своих друзей и коллег, посмотрев на шестнадцатеричное значение и сказать что-то вроде "этой фуксии". так что да, я думаю, что если вы используете что-то определенным образом в течение долгого времени, ваш мозг в конечном итоге преодолеет этот пробел для вас.
Ответ 4
При работе с флагами я всегда использую hex. При работе с кодами, например. символы, я всегда использую hex. Когда речь идет о действительных числах, я использую hex или decimal, в зависимости от того, что задает контекст.
Ответ 5
Я не думаю, что вам нужно практиковать, используя шестнадцатеричные числа только ради практики. Если у вас есть экзамен, который вам нужно знать в шестнадцатеричной форме, практика. Если вы проводите собеседование для работы, где вам может понадобиться иметь дело с полями протоколов или задавать биты в регистре, тогда практикуйте.
Если вы используете шестнадцатеричные числа, достаточно часто в повседневной кодировке, вы в конечном итоге приобретаете навыки ниндзя, которые вы ищете. Если вы не используете их часто, то вам, вероятно, не нужны эти навыки. Я бы не стал его заставлять.
Ответ 6
Я работал в ассемблере много лет назад и решил, что мне нужно изучить основные факты в Hex (таблицы умножения и добавления). Поэтому я написал пару графиков и привязал их к своей стене и начал учиться. Мой менеджер прошел мимо, спросил меня, кто они, а потом сказал мне пойти и купить Hex calculater! Я никогда не узнавал эти факты, но я не могу не чувствовать, что было бы неплохо сделать это в этом контексте. И я не думаю, что было бы слишком сложно это сделать.
Сказав это, я согласен с другими ответами - используйте Hex в правильном контексте, главная цель должна заключаться в том, чтобы сделать код понятным.
Ответ 7
Вам может быть интересно, что восьмеричная система была изобретена королем Швеции Чарльзом XII, который имел все основания заставлять их в стране, но через два года был ужасный случай смерти.
Ответ 8
Прости. Выродка во мне взяла верх.
Я должен был сделать это.
Это небольшая игра Javascript, с которой я столкнулся, чтобы помочь вам стать задирами в шестнадцатеричном стиле.
Да, вы можете обмануть, но это не совсем так!
Ответ 9
Если вы используете шестнадцатеричный код достаточно долго, вы, в конце концов, привыкнете к нему, да. Так же, как вы привыкли к десятичному, когда вы были ребенком. Просто не жалуйтесь, когда вы, например, заваливаете математический курс, потому что "pi не равно 3.243f6a88..." или что-то в этом роде.
Кроме того, @oefe, decimal не подходит для работы с "нормальными", реальными числами, он просто более популярен.
Ответ 10
Отличный вопрос!
Я думаю с точки зрения Phinary http://en.wikipedia.org/wiki/Golden_ratio_base
Серьезно, хотя у меня был профессор архитектуры, которому не нужен дизассемблер - только шестнадцатеричный редактор:)