Подтвердить что ты не робот

Вопрос для вас, который часто работает с шестнадцатеричным

Всякий раз, когда я работаю с шестнадцатеричными значениями, я делаю преобразование (если необходимо) в десятичное число в моей голове или с помощью конвертера. Ну, я думал, если вы работаете достаточно долго и привыкаете к шестнадцатеричному, вы просто "видите" значение (что бы это ни значило), как при чтении десятичных чисел? Я имею в виду, что через некоторое время вы можете легко считывать значения базового 16 так же, как и базовые значения 10? Когда я пишу код с шестнадцатеричными значениями, я делаю это, потому что он выглядит сексуально и плохой (а иногда потому, что 8 бит вписывается в две цифры, что иногда помогает), а не потому, что я чувствую себя как-то комфортно с ними. Таким образом, я мог бы знать, есть ли смысл пытаться привыкнуть к шестнадцатеричному, чтобы в какой-то день легко работать с ними.

4b9b3361

Ответ 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 в правильном контексте, главная цель должна заключаться в том, чтобы сделать код понятным.

Ответ 8

Прости. Выродка во мне взяла верх.

Я должен был сделать это.

http://pap.centelia.net/

Это небольшая игра Javascript, с которой я столкнулся, чтобы помочь вам стать задирами в шестнадцатеричном стиле.

Да, вы можете обмануть, но это не совсем так!

Ответ 9

Если вы используете шестнадцатеричный код достаточно долго, вы, в конце концов, привыкнете к нему, да. Так же, как вы привыкли к десятичному, когда вы были ребенком. Просто не жалуйтесь, когда вы, например, заваливаете математический курс, потому что "pi не равно 3.243f6a88..." или что-то в этом роде.

Кроме того, @oefe, decimal не подходит для работы с "нормальными", реальными числами, он просто более популярен.

Ответ 10

Отличный вопрос!

Я думаю с точки зрения Phinary http://en.wikipedia.org/wiki/Golden_ratio_base

Серьезно, хотя у меня был профессор архитектуры, которому не нужен дизассемблер - только шестнадцатеричный редактор:)