Что означает 0x в шестнадцатиричной системе
Шестнадцатеричная Нумерация и Адресация
Система счисления с основанием 16 использует числа от 0 до 9 и буквы от A до F. Рисунок показывает эквивалентные десятичные, двоичные и шестнадцатеричные значения для двоичных чисел от 0000 до 1111. Для нас легче выражать значение в виде одной шестнадцатеричной цифры, чем в виде четырех битов.
Понимание Байтов
Учитывая, что 8 битов (байт) являются стандартной двоичной группировкой, двоичные числа от 00000000 до 11111111 могут быть представлены в шестнадцатеричной записи как числа от 00 до FF. Начальные нули всегда отображаются, чтобы завершить 8-разрядное представление. Например, двоичное значение 0000 1010 в шестнадцатеричном виде будет 0A.
Представление Шестнадцатеричных Значений
Отметьте: Важно отличать шестнадцатеричные значения от десятичных значений для символов от 0 до 9, как показано на рисунке.
Шестнадцатеричные значения обычно представляются в тексте значением, которому предшествует 0x (например 0x73), или с помощью нижнего индекса 16. Реже, они могут сопровождаться буквой H, например 73H. Однако, поскольку текст нижнего индекса не распознается ни в командной строке, ни в средах программирования, в техническом представлении шестнадцатеричных чисел им предшествует «0x» (нуль X). Поэтому, примеры выше были бы показаны в виде 0x0A и 0x73 соответственно.
Шестнадцатеричные Преобразования
Преобразования чисел между десятичными и шестнадцатеричными значениями являются простыми, но быстрое деление или умножение на 16 не всегда удобно. Если такие преобразования необходимы, обычно легче преобразовать десятичное или шестнадцатеричное значение в двоичное, а затем преобразовать двоичное значение в десятичное или шестнадцатеричное, в зависимости от того, что требуется получить.
С практикой возможно распознать двоичные шаблоны битов, которые соответствуют десятичным и шестнадцатеричным значениям. Рисунок показывает эти шаблоны для некоторых 8-разрядных значений.
Что означают «0b» и «0x» при назначении двоичного и шестнадцатеричного кодов?
При непосредственном присвоении двоичного значения и шестнадцатеричного значения вы можете сделать это следующим образом (соответственно):
Также в качестве еще одного любопытного вопроса, какие еще символы могут идти вместо «b» и «x»? Есть ли один для восьмеричного в качестве примера?
3 ответа
Любые целочисленные литералы, которые вы можете создать, суммированы в стандарте C ++ путем создания грамматики по адресу [ lex.icon ]
Как мы можем вывести из грамматики, существует четыре типа целочисленных литералов:
Ведущие 0 для восьмеричных чисел можно рассматривать как «O» в «Octal». Другие префиксы используют начальный ноль, чтобы отметить начало числа, которое не должно интерпретироваться как десятичное. «B» интуитивно понятно для « b inary», а «X» для «он x adecimal».
В отсутствие суффикса определяемого пользователем литерала любой числовой литерал, начинающийся с ненулевого значения, находится в динаре.
В мире C ++ есть грохот, чтобы использовать 0o для восьмеричного литерала и, возможно, даже отказаться от поддержки ведущей нулевой версии. Хотя это было бы ужасным переломным моментом.
Они означают, что числовой литерал находится соответственно в двоичной и шестнадцатеричной основе.
Можете ли вы иметь другие значения вместо 0?
Числовой литерал, начинающийся с ненулевой цифры, будет десятичным.
Также в качестве еще одного любопытного вопроса, какие еще символы могут идти вместо «b» и «x»?
Помимо b и x, любая восьмеричная цифра может идти туда, и в этом случае она является самой значимой цифрой восьмеричного литерала.
Почему шестнадцатеричные числа имеют префикс 0x?
4 ответов
язык BCPL используется синтаксис 8 1234 для восьмеричных чисел. Когда Кен Томпсон создал B из BCPL, он использовал 0 префикс вместо этого. Это здорово, потому что
C# является потомком C, поэтому он наследует синтаксис.
примечание: Я не знаю правильного ответа, но ниже-это только мои личные домыслы!
как уже упоминалось, 0 перед числом означает, что оно восьмеричное:
вы не можете привести с персонажем по той же причине:
использование хэша, вероятно, было выброшено, потому что он конфликтует с препроцессором:
в конце концов, по какой-то причине, они решили поставить x после ведущего 0, чтобы обозначить шестнадцатеричное. Он однозначен, поскольку он все еще начинается с символа числа, поэтому не может быть допустимым идентификатором и, вероятно, основан на восьмеричное соглашение ведущего 0.
простой
это префикс, указывающий, что число находится в шестнадцатеричном, а не в какой-либо другой базе. Язык программирования C использует его для передачи компилятору.
пример :
на Бинарные будет
Надежда каким-то образом помогла.
Добрый день,
предыдущий 0 используется для указания числа в базе 2, 8 или 16.
на мой взгляд, 0x был выбран для обозначения hex, потому что » x » звучит как hex.
только мое мнение, но я думаю, что это имеет смысл.
От 0 до F: шестнадцатеричные числа
Шестнадцатеричные данные. Это информация внутри вашего компьютера. Но что на самом деле такое шестнадцатеричное число? Что означают странные и непривычно выглядящие шестнадцатеричные числа? Как появилось шестнадцатеричное число? Узнайте больше о шестнадцатеричном формате сегодня.
Что такое шестнадцатеричный?
Шестнадцатеричная система счисления использует шестнадцать символов (от 0 до 9 и от A до F) для образования и представления любого числа. Шестнадцатеричная система используется в компьютерах и калькуляторах. Слово «шестнадцатеричный» часто сокращается до hex, а hex происходит от слова hexagon, то есть шестиугольник, шесть. На английском языке слово «шестнадцатеричный» записывается как hexadecimal и вы можете сразу увидеть логику названия hexa..decimal, поскольку decimal означает (10), а hexa означает 6 (A-F, 6 символов).
Компьютеры часто используют шестнадцатеричные числа в своих внутренних вычислительных системах. Существует прямая связь между двоичными и восьмеричными числами и шестнадцатеричными числами. Чтобы узнать больше о шестнадцатеричной системе счисления с 16 основанием (16 основных элементов, 16 основных чисел), нам нужно немного отступить и сначала изучить двоичную и восьмеричную системы. Если вы раньше не слышали эти термины, не волнуйтесь, это далеко не так сложно, как кажется.
Что такое двоичный?
Двоичные числа, особенно двоичная система счисления, является одной из самых, если не самых простых систем счисления на планете. В двоичном формате есть только два возможных числа (отсюда и термин двоичный, т.е. состоящий из двух вещей), и это ноль (0) и единица (1). Хотя мы используем ноль и единицу для представления двух возможных чисел в этой системе, пожалуйста, поймите, что это всего лишь выбор — точно так же, как я бы использовал буквы латинского алфавита A-Z для представления слов на английском языке или китайских символов для представления слов на китайском языке.
Так как же считать в двоичной системе счисления с двумя основными числами? Все мы знаем, как считать в десятичной системе счисления (десятичная система счисления, которую мы используем каждый день для всех наших выражений количества и т. д.), 0… 1… 2… 3…, но как мы это делаем, если мы даже не можем выйти за рамки 1 к 2? Что произойдёт, когда мы дойдём до 9 и нам нужно будет найти следующее число? Мы добавляем единицу впереди (первая цифра в 10) и сбрасываем нашу вторичную позицию на 0. Мы продолжаем делать это, чтобы считать до 99, а затем делаем то же самое, хотя на этот раз мы сбрасываем две позиции.
Мы можем использовать тот же метод в нашем 2-базовом двоичном вычислении, и это именно то, что мы делаем и как мы считаем. Начнём: 0… 1… 10… 11… 100… 101… 110… 111… 1000…. Не сложно, правда? Если вы ещё не знали, как считать в двоичном формате, поздравляем, теперь вы знаете, как это сделать! В наши дни этому навыку обучают в средней школе. Перейдём к восьмеричному.
Что такое восьмеричный?
До сих пор мы обнаружили, что десятичное число также может быть обозначена как число с основанием 10, потому что оно имеет 10 различных символов для выражения чисел (от 0 до 9), а в число с основанием 2 только ноль и один. Теперь мы представим восьмеричную, ещё одну компьютерно-ориентированную систему счисления, которая имеет 8 возможных символов. Как вы уже догадались, от нуля (0) до семи (7). Вы можете начать понимать, почему существуют такие системы счисления: добро пожаловать в степень двойки: 2 (двоичная) > 4 (полбайта) > 8 (восьмеричная, один байт) > 16 (шестнадцатеричная).
Так что же такое байт? Байт состоит из восьми битов (обычно визуально отображается как 2 набора по 4 бита, хотя для компьютера это просто 8 бит в строке), образующих один байт. Например, 0110 1100 — это действительный байт, состоящий из 8 бит. Это число можно преобразовать в восьмеричное (154), шестнадцатеричное (6C) и десятичное (108). Обратите внимание на то, что чем выше номер основания числа, тем короче его запись, например, 6C в шестнадцатеричной системе записывается как 154 в восьмеричной системе счисления. В двоичной системе счисления запись этого числа будет ещё длиннее.
Байт часто используется для хранения простых буквенно-цифровых символов. Например, буква «A» записывается в двоичном формате как 0100 0001. Обратите внимание, что максимальное значение в байте (например, 1111 1111) равно 255, и, таким образом, существует только 256 возможных комбинаций (+1, поскольку 0 также является возможной опцией) — это все возможные комбинации, которые можно сделать с помощью одного байта. Таким образом, наш ограниченный диапазон от A до Z, даже включая цифры 0-9 и строчные буквы a-z, все вместе легко умещается в один байт, и мы даже можем представить некоторые другие символы, такие как «@» и «!».
Однако, когда речь идёт, например, о китайском с его множеством разных символов, нам может потребоваться два или более байта для хранения наших отдельных символов, то есть многобайтовые символы.
Возвращаясь к восьмеричной системе счисления, как считать восьмеричные числа? Как вы уже догадались, всё происходит как в десятичной и двоичной системах счисления: тот же метод, который мы уже видели, после каждого раунда дописывается ещё одна цифра, а предыдущие цифры сбрасываются на ноль. Только нужно помнить о том, что в восьмеричной системе счисления максимальной (последней) цифрой является 7. Посчитаем вместе: 0… 1… 2… 3… 4… 5… 6… 7… 10… 11… — выглядит немного странно, не так ли? Это потому, что наш разум так настроен думать о 10, ну, как о «10». Но 10 в восьмеричной системе счисления равно 8 в десятичной. Сбивает с толку? Для нас, простых людей, да, восьмеричная система счисления с основанием числа 8 может сбивать с толку. Для компьютера это не проблема.
Подсчёт в шестнадцатеричной системе счисления
Это возвращает нас к счёту в нашей системе счисления с основанием 16: шестнадцатеричной. Теперь мы знаем шаги, которым нужно следовать, и можем сосчитать (пропустим подсчёт от нуля до девяти): 0… пропуск до… 9… A… B… C… D… E… F… 10… 11…. Теперь мы понимаем, что 10 в шестнадцатеричной системе счисления, как и в восьмеричной, имеет другое значение, чем то, что мы можем подумать (исходя из нашей привычки пользоваться десятичной системой счисления), поскольку мы ведём счёт в шестнадцатеричной системе счисления, которая соответствует основанию равному 16, а не десятичной системе счисления, в которой основание равно 10. Число 10 в шестнадцатеричном формате на самом деле равно 16 в десятичном!
Примечательно, что шестнадцатеричный формат, именно потому, что он состоит из 16 оснований, позволяет нам хранить весь байт в двух символах! Мы не можем сделать это с десятичным числом, поскольку двоичное значение 1111 1111 (т.е. 1111111 для компьютера) равно 255 в десятичном формате. Однако в шестнадцатеричном формате оно может быть представлено как FF, который в десятичном виде равен 255. Также обратите внимание, что полбайта, 4 бита, можно сохранить в одном шестнадцатеричном символе.
Подведение итогов
Мы надеемся, что вам понравилось это введение в шестнадцатеричную, нашу 16-символьную или 16-базовую числовую систему, а также в двоичную систему счисления с двумя базовыми числами и восьмеричную систему счисления с основанием числа 8. Мы также узнали, как мы ведём ежедневный счёт в десятичной системе счисления, в нашей очень знакомой десятичной системе счисления используются числа от 0 до 9.
Мы также увидели, что символы, которые мы используем для представления двоичных, восьмеричных, шестнадцатеричных и даже десятичных значений, — это всего лишь символы, которые человечество выбрало для представления этих различных систем счисления. Мы могли бы легко выбрать другие представления для других числовых систем, но повторное использование тех же чисел кажется знакомым и имеет некоторый смысл, особенно в случае двоичной системы «напряжение» и «отсутствие напряжение», представлены нулём и единицей.
Шестнадцатеричный код.
Шестнадцатеричная система счисления (также — шестнадцатеричный код) является позиционной системой счисления с целочисленным основанием 16. Иногда в литературе также используется термин hex (произносится «хекс», сокращение от англ. hexadecimal). Цифрами данной системы счисления принято использовать арабские цифры 0—9, а также первые символы латинского алфавита A—F. Буквы соответствуют следующим десятичным значениями:
Таким образом, десять арабских цифр вкупе с шестью латинскими буквами и составляют шестнадцать цифр системы.
Кстати, на нашем сайте вы можете перевести любой текст в десятичный, шестнадцатеричный, двоичный код воспользовавшись Калькулятором кодов онлайн.
Применение. Шестнадцатеричный код широко применяется в низкоуровневом программировании, а также в различных компьютерных справочных документах. Популярность системы обоснована архитектурными решениями современных компьютеров: в них в качестве минимальной единицы информации установлен байт (состоящий из восьми бит) — а значение байта удобно записывать с помощью двух шестнадцатеричных цифр. Значение байта может ранжироваться с #00 до #FF (от 0 до 255 в десятичной записи) — другими словами, используя шестнадцатеричный код, можно записать любое состояние байта, при этом не остаётся «лишних» не используемых в записи цифр.
В кодировке Юникод для записи номера символа используется четыре шестнадцатеричных цифры. Запись цвета стандарта RGB (Red, Green, Blue — красный, зелёный, синий) также часто использует шестнадцатеричный код (например, #FF0000 — запись ярко-красного цвета).
Способ записи шестнадцатеричного кода.
Математический способ записи. В математической записи основание системы записывают в десятичном виде в нижнем индексе справа от числа. Десятичную запись числа 3032 можно записать как 303210, в шестнадцатеричной системе данное число будет иметь запись BD816.
В синтаксисе языков программирования. Синтаксис различных языков программирования по-разному устанавливает формат записи числа, использующего шестнадцатеричный код:
* В C, C++ и схожих языках (Java) для этого используется префикс «0x», например: 0x0A0B;
* В синтаксисе некоторых разновидностей языка ассемблера используется латинская буква «h», которая ставится справа от числа, например: 20Dh. Если число начинается с латинской буквы, то перед ним ставится ноль, например: 0A0Bh. Это сделано для того, чтобы отличать от констант значения, использующие шестнадцатеричный код;
* В языке разметки HTML, а также в каскадных файлах CSS, для указания цвета в формате RGB с шестнадцатеричной системой записи, используется префикс «#»: #00DC00.
Как перевести шестнадцатеричный код в другую систему?
Перевод из шестнадцатеричной системы в десятичную. Для совершения операции перевода из шестнадцатеричной системы в десятичную, требуется представить исходное число как сумму произведений цифр в разрядах шестнадцатеричного числа на степень основания.