Site Loader

Таблица 16 ричной системы. Системы счисления

Для представления чисел в микропроцессоре используется двоичная система счисления .
При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=a n a n-1 ..a 1 a 0 ,a -1 a -2 …a -m запишется в двоичной системе счисления как

x = a n ·2 n +a n-1 ·2 n-1 +…+a 1 ·2 1 +a 0 ·2 0 +a -1 ·2 -1 +a -2 ·2 -2 +…+a -m ·2 -m

где a i — двоичные цифры (0 или 1).

Восьмеричная система счисления

В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.

Шестнадцатеричная система счисления

В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:

10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16 .

Например, число 175 10 в шестнадцатеричной системе счисления запишется как AF 16 . Действительно,

10·16 1 +15·16 0 =160+15=175

В таблице представлены числа от 0 до 16 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.

ДесятичнаяДвоичнаяВосьмеричнаяШестнадцатеричная
00 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Двоично-восьмеричные и двоично-шестнадцатеричные преобразования

Двоичная система счисления удобна для выполнения арифметических действий аппаратными средствами микропроцессора, но неудобна для восприятия человеком, поскольку требует большого количества разрядов. Поэтому в вычислительной технике помимо двоичной системы счисления широкое применение нашли восьмеричная и шестнадцатеричная системы счисления для более компактного представления чисел.

Три разряда восьмеричной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.

Пример: Преобразовать число 1101110,01 2 в восьмеричную систему счисления.

Объединяем двоичные цифры в триады справа налево. Получаем

001 101 110,010 2 = 156,2 8 .

Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:

156,2 8 = 001 101 110,010 2 .

Четыре разряда шестнадцатеричной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.

Пример: Преобразовать число 1101110,11 2 в шестнадцатеричную систему счисления.

Объединяем двоичные цифры в тетрады справа налево. Получаем

0110 1110,1100 2 = 6E,C 16 .

Чтобы перевести число из шестнадцатеричной системы в двоичную, нужно каждую шестнадцатеричную цифру записать ее двоичным кодом.

Шестнадцатеричная запись («Hex») — удобный способ представления двоичных значений. Так же, как десятичная система счисления имеет основание десять, а двоичная — два, шестнадцатеричная система имеет основание шестнадцать.

Система счисления с основанием 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 соответственно.

Шестнадцатеричная запись используется, чтобы представлять MAC-адреса Ethernet и адреса IP Версии 6.

Шестнадцатеричные Преобразования

Преобразования чисел между десятичными и шестнадцатеричными значениями являются простыми, но быстрое деление или умножение на 16 не всегда удобно. Если такие преобразования необходимы, обычно легче преобразовать десятичное или шестнадцатеричное значение в двоичное, а затем преобразовать двоичное значение в десятичное или шестнадцатеричное, в зависимости от того, что требуется получить.

С практикой возможно распознать двоичные шаблоны битов, которые соответствуют десятичным и шестнадцатеричным значениям. Рисунок показывает эти шаблоны для некоторых 8-разрядных значений.

Шестнадцатеричная система счисления. аша первая программа.

Для написания программ на Ассемблере, необходимо разобраться с шестнадцатеричной системой счисления. Ничего сложного в ней нет. Мы используем в жизни десятичную систему. Уверен, что вы все ее знаете, поэтому я постараюсь объяснить шестнадцатеричную систему, проводя аналогию с десятичной.

Итак, в десятичной системе если мы к какому-нибудь числу справа добавим нуль, то это число увеличится в 10 раз. Например: 1 х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В этой системе мы используем цифры от 0 до 9, т.е. десять разных цифр (собственно, поэтому она и называется десятичная).

В шестнадцатеричной системе мы используем, соответственно, шестнадцать «цифр». Я специально написал слово «цифр» в кавычках, т.к. в ней используются не только цифры. Да и в самом деле как так? Объясняю: от 0 до 9 мы считаем так же, как и в десятичной, а вот дальше будет так: A, B, C, D, E, F. Число F, как не трудно посчитать, будет равно 15 в десятичной системе (см.

табл. 1).

Десятичное число

Шестнадцатеричное число

Таблица 1. Десятичная и шестнадцатеричная системы.

Т.о., если мы к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз.

Пример 1: 1 х 16 = 10; 10 х 16 = 100; 100 х 16 = 1000 и т.д.

Вы смогли отличить в Примере 1 шестнадцатеричные числа от десятичных? А из этого ряда: 10, 12, 45, 64, 12, 8, 19? Это могут быть как шестнадцатеричные, так и десятичные. Для того, чтобы не было путаницы, и компьютер смог бы однозначно отличить одни числа от других, в Ассемблере принято после шестнадцатеричного числа ставить символ h или H (H это сокращение от англ. hexadecimal (шестнадцатеричное). Для краткости его иногда называют просто Hex )

. А после десятичного ничего не ставить. Т.к. числа от 0 до 9 в обоих системах имеют одинаковые значения, то числа, записанные как 5 и 5h одно и тоже.

Т.о. Пример 1 (см. выше) правильнее будет записать так: 1 х 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h. Либо так: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h = 1000h.

Для чего нужна шестнадцатеричная система, мы рассмотрим в последующих выпусках. А в данный момент для нашего примера программы, который будет рассмотрен ниже, нам необходимо знать о существовании шестнадцатеричных чисел.

Итак, подведем итог. Шестнадцатеричная система счисления состоит из 10 цифр (от 0 до 9) и 6 букв латинского алфавита (A, B, C, D, E, F). Если к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз. Очень важно уяснить данную тему , так как мы будем постоянно использовать ее при написании программ.

Теперь немного о том, как я буду строить примеры на Ассемблере. Не совсем удобно приводить их в HTML-формате, поэтому сперва будет сам код программы с пронумерованными строчками, а сразу же после него объяснения и примечания.

Примерно так:

строкКод программы
(1)mov ah,9

Объяснения:

В строке (1) мы делаем то-то, а в строке (15) то-то.

Огромная просьба: НЕ копируйте программы со страницы в буфер, а затем не вставляйте их в Блокнот (или еще куда-нибудь)! Перепечатывайте их вручную в текстовом редакторе. Если есть принтер, то выделите программу, распечатайте выделенный фрагмент, а затем перебейте в редактор с бумаги. Все примеры нужно набирать самостоятельно! Это ускорит запоминание операторов.

И еще. Строчные и ПРОПИСНЫЕ буквы в Ассемблере не различаются. Записи вида:

Ассемблером воспринимаются одинаково. Можно, конечно, заставить Ассемблер различать строчные и ПРОПИСНЫЕ символы, но мы пока этого делать не будем. Для удобства чтения программы лучше всего операторы печатать строчными буквами, а названия подпрограмм и меток начинать с прописной. Но это как кому будет удобно.

Итак, переходим к нашей первой программе:

(1) CSEG segment

(2) org 100h

(4) Begin:

(6) mov ah,9

(7) mov dx,offset Message

(8) int 21h

(10) int 20h

(11)

(12) Message db «Hello, world!$»

(13) CSEG ends

(14) end Begin

Для того, чтобы объяснить все операторы данного примера, нам потребуется несколько выпусков. Поэтому описание некоторых команд мы просто опустим на данном этапе. Просто считайте, что так должно быть. В самое ближайшее время мы рассмотрим эти операторы подробно. Итак, строки с номерами (1), (2) и (13) вы просто игнорируете.

Строки (3), (5), (9) и (11) остаются пустыми. Это делается для наглядности. Ассемблер их будет просто опускать.

Теперь перейдем к рассмотрению остальных операторов. Со строки (4) начинается код программы. Это метка, указывающая Ассемблеру на начало кода. В строке (14) стоят операторы end Begin (Begin англ. начало; end конец). Это конец программы. Вообще вместо слова Begin можно было бы использовать что-нибудь другое. Например, Start:. В таком случае, нам пришлось бы и завершать программу End Start (14).

Строки (6) (8) выводят на экран сообщение Hello, world!. Здесь придется вкратце рассказать о регистрах процессора (более подробно эту тему мы рассмотрим в следующем выпуске).

Регистр процессора это специально отведенная память для хранения какого-нибудь числа.

Например:

Если мы хотим сложить два числа, то в математике запишем так:

A, B и C это своего рода регистры (если говорить о компьютере), в которых могут хранится некоторые данные. А=5 можно прочитать как: Присваиваем А число 5 .

Для присвоения регистру какого-нибудь значения, в Ассемблере существует оператор mov (от англ. move загрузить). Строку (6) следует читать так: Загружаем в регистр AH число 9 (проще говоря, присваиваем AH число 9). Ниже рассмотрим зачем это надо.

В строке (7) загружаем в регистр DX адрес сообщения для вывода (в данном примере это будет строка Hello, world!$ ).

Прерывания будут подробно рассматриваться в последующих выпусках. Здесь я скажу несколько слов.

Прерывание MS-DOS это своего рода подпрограмма (часть MS-DOS) , которая находится постоянно в памяти и может вызываться в любое время из любой программы.

Рассмотрим вышесказанное на примере (мелким шрифтом выделим примечания ):

Программа сложения двух чисел

НачалоПрограммы

A=5 в переменную A заносим значение 5

B=8 в переменную B значение 8

ВызовПодпрограммы Сложение

теперь С равно 13

A=10 тоже самое, только другие числа

B=25

ВызовПодпрограммы Сложение

теперь С равно 35

КонецПрограммы

Подпрограмма Сложение

C=A+B

ВозвратИзПодпрограммы возвращаемся в то место, откуда вызывали

КонецПодпрограммы

В данном примере мы дважды вызвали подпрограмму Сложение , которая сложила два числа, переданные ей в переменных A и B. Результат помещается в переменную С. Когда вызывается подпрограмма, компьютер запоминает с какого места она была вызвана, а затем, когда закончила работу подпрограмма, компьютер возвращается в то место, откуда она вызывалась. Т.о. можно вызывать подпрограммы неопределенное количество раз с любого места.

При выполнении строки (8) программы на Ассемблере мы вызываем подпрограмму (в данном случае это называется прерывание), которая выводит на экран строку. Для этого мы, собственно, и помещаем необходимые значения в регистры. Всю необходимую работу (вывод строки, перемещение курсора) берет на себя подпрограмма. Эту строку можно прочитать так: вызываем двадцать первое прерывание (int от англ. interrupt прерывание). Обратите внимание, что после числа 21 стоит буква h. Это, как мы уже знаем, шестнадцатеричное число (33 в десятичной системе). Конечно, нам ничего не мешает заменить строку int 21h на int 33. Программа будет работать корректно. Просто в Ассемблере принято указывать номер прерывания в шестнадцатеричной системе.

В строке (10) мы, как вы уже догадались, вызываем прерывание 20 h. Для вызова данного прерывания не нужно указывать какие-либо значения в регистрах. Оно выполняет только одну задачу: выход из программы (выход в DOS). В результате выполнения прерывания 20h, программа вернется туда, откуда ее запускали (загружали, вызывали). Например, в Norton Commander или DOS Navigator.

Строка (12) содержит сообщение для вывода. Первое слово (message сообщение) название сообщения. Оно может быть любым (например, mess или string и пр.). Обратите внимание на строку (7), в которой мы загружаем в регистр DX адрес нашего сообщения.

Можно создать еще одну строку, которую назовем Mess2. Затем, начиная со строки (9) вставим следующие команды:

(10) mov dx,offset Mess2

(13) Message db «Hello, world!$»

(14) Mess2 db «Это Я! $»

и ассемблировать нашу программу заново. Надеюсь, что вы догадались, что произойдет

Обратите внимание на последний символ в строках Message и Mess2 — $. Он указывает на конец строки. Если мы его уберем, то 21 h прерывание продолжит вывод до тех пор, пока не встретится где-нибудь в памяти символ $. На экране мы увидим мусор .

Если у вас есть отладчик, то можно посмотреть как будет работать наша программа.

Целю настоящего выпуска не было разобраться подробно с каждым оператором . Это невозможно, т.к. у вас еще недостаточно знаний. Я полагаю, что уже через 3-4 выпуска вы поймете принцип и структуру программы на Ассемблере. Может быть, вам показался язык Ассемблера чрезвычайно сложным, но это, поверьте, с первого взгляда.

Теперь предстоит совсем легкая прогулка, связанная с шестнадцатеричной системой счисления. В этом случае, надеемся, вы подозреваете и, видимо, справедливо, что у нас должно теперь быть 16 различных цифр.

Но, как мы знаем, традиционных («арабских») цифр всего десять. А требуется шестнадцать. Получается, что не хватает шести знаков.

Замечание
Таким образом, возникает чисто дизайнерская задача по теме «Знаки» — придумать недостающие символы для цифр
.

Значит, в свое время специалистам необходимо было придумать какие-нибудь новые знаки. Но когда-то, в начале компьютерной эры, особого выбора в знаках не было. Программисты располагали только знаками цифр и букв. Поэтому они пошли по элементарному пути: взяли первые буквы латинского алфавита в качестве цифр, тем более что исторически это не первый случай (мы уже упоминали, что первоначально вместо цифр многие народы использовали буквы).

Замечание
Надеемся, что всем понятно, почему в этом случае нельзя использовать, например, числа «10», «11», «12» и т. д.? Потому что, если мы говорим о шестнадцатеричной системе счисления, то должно быть шестнадцать цифр , а не чисел
.

И десятичное число «10» стали обозначать латинской буквой «А» (точнее, «цифрой А»). Соответственно, дальше идут цифры «В», «С», «D», «Е» и «Р.

Поскольку мы намеревались построить шестнадцатеричную систему, то, начиная с нуля, здесь как раз и получится 16 цифр. Например, цифра «D» — это десятичное число «13», а цифра «F» — это десятичное число «15».

Когда к шестнадцатеричному числу «F» прибавляем единицу, то, поскольку эти цифры у нас кончились, в этом разряде ставим «О», а в следующий разряд переносим единицу, поэтому получается, что десятичное число «16» будет представлено в шестнадцатеричной системе счисления числом «10», т. е. получается «шестнадцатеричная десятка». Соединим десятичные и шестнадцатеричные числа в единую таблицу (табл. 4.5).

Таблица 4.5 . Соответствие десятичных и шестнадцатеричных чисел.

Десятичное числоШестнадцатеричное числоДесятичное числоШестнадцатеричное число
0-9 0-929 1D
10 А30
11 В31 1F
12 С32-41 20-29
13 D42-47 2A-2F
14 Е48-255 30-FF
15 F256 100
16 10512 200
17-25 11-191024 400
26 1280 500
27 4096 1000
28 1C

Шестнадцатеричная система используется, чтобы более компактно записывать двоичную информацию. В самом деле, «шестнадцатеричная тысяча», состоящая из четырех разрядов, в двоичном виде занимает тринадцать разрядов (1000 16 = 1000000000000 2).

При обсуждении систем счисления неоднократно фигурировали «десятки», «сотни» и «тысячи», поэтому необходимо обратить внимание на так называемые «круглые» числа.

Шестнадцатеричная система счисления (также — шестнадцатеричный код) является позиционной системой счисления с целочисленным основанием 16. Иногда в литературе также используется термин hex (произносится «хекс», сокращение от англ. hexadecimal). Цифрами данной системы счисления принято использовать арабские цифры 0—9, а также первые символы латинского алфавита A—F. Буквы соответствуют следующим десятичным значениями:

  • * A —10;
  • * B —11;
  • * C —12;
  • * D —13;
  • * E — 14;
  • * F — 15.

Таким образом, десять арабских цифр вкупе с шестью латинскими буквами и составляют шестнадцать цифр системы.

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

Применение . Шестнадцатеричный код широко применяется в низкоуровневом программировании, а также в различных компьютерных справочных документах. Популярность системы обоснована архитектурными решениями современных компьютеров: в них в качестве минимальной единицы информации установлен байт (состоящий из восьми бит) — а значение байта удобно записывать с помощью двух шестнадцатеричных цифр. Значение байта может ранжироваться с #00 до #FF (от 0 до 255 в десятичной записи) — другими словами, используя шестнадцатеричный код , можно записать любое состояние байта, при этом не остаётся «лишних» не используемых в записи цифр.

В кодировке Юникод для записи номера символа используется четыре шестнадцатеричных цифры. Запись цвета стандарта RGB (Red, Green, Blue — красный, зелёный, синий) также часто использует шестнадцатеричный код (например, #FF0000 — запись ярко-красного цвета).

Способ записи шестнадцатеричного кода.

Математический способ записи . В математической записи основание системы записывают в десятичном виде в нижнем индексе справа от числа. Десятичную запись числа 3032 можно записать как 3032 10 , в шестнадцатеричной системе данное число будет иметь запись BD8 16 .

В синтаксисе языков программирования . Синтаксис различных языков программирования по-разному устанавливает формат записи числа, использующего шестнадцатеричный код :

* В синтаксисе некоторых разновидностей языка ассемблера используется латинская буква «h», которая ставится справа от числа, например: 20Dh. Если число начинается с латинской буквы, то перед ним ставится ноль, например: 0A0Bh. Это сделано для того, чтобы отличать от констант значения, использующие шестнадцатеричный код ;

* В прочих разновидностях ассемблера, а также в Pascal (и его разновидностях, таких как Delphi) и некоторых диалектах Basic, применяют префикс «$»: $A15;

* В языке разметки HTML, а также в каскадных файлах CSS, для указания цвета в формате RGB с шестнадцатеричной системой записи, используется префикс «#»: #00DC00.

Как перевести шестнадцатеричный код в другую систему?

Перевод из шестнадцатеричной системы в десятичную. Для совершения операции перевода из шестнадцатеричной системы в десятичную, требуется представить исходное число как сумму произведений цифр в разрядах шестнадцатеричного числа на степень основания.

Двоичная СС

шестнадцатеричная СС

Например, требуется выполнить перевод шестнадцатеричного числа A14: в нём три цифры. Используя правило, запишем его в виде суммы степеней с основанием 16:

A14 16 = 10.16 2 + 1.16 1 + 4.16 0 = 10.256 + 1.16 + 4.1 = 2560 + 16 + 4 = 2580 10

Перевод чисел из двоичной в шестнадцатеричную систему и наоборот.

Для перевода используется таблица тетрад. Чтобы выполнить перевод числа из двоичной в десятичную систему, необходимо произвести разбиение его на отдельные тетрады справа налево, после чего, используя таблицу, выполнить замену каждой тетрады на соответствующую шестнадцатеричную цифру. При этом, если количество цифр не кратно четырём, то необходимо добавить соответствующее количество нулей справа от числа, для того, чтобы общее число двоичных цифр стало кратно четырём.

Таблица тетрад для перевода.

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

Двоичная СС

Восьмеричная СС

Пример перевода из шестнадцатеричной системы в двоичную : A5E 16 = 1010 0101 1110 = 101001011110 2

Пример перевода из двоичной системы в шестнадцатеричную : 111100111 2 = 0001 1110 0111 = 1E7 16

В этом примере количество цифр в исходном двоичном числе не было равным четырём (9), поэтому были добавлены незначащие нули — общее число цифр стало 12.

Автоматический перевод . Быстрый перевод из шестнадцатеричной системы счисления в одну из трёх популярных систем (двоичную, восьмеричную и десятичную), как и обратный перевод, можно выполнить, используя стандартный калькулятор из комплекта поставки ОС Windows. Откройте калькулятор, выберите в меню Вид -> Программист. В данном режиме можно устанавливать систему счисления, используемую в данный момент (см. меню слева: Hex, Dec, Oct, Bin). При этом изменение текущей системы счисления автоматически производит перевод.

sistemschisleniya | Just another WordPress.com site

    Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления по целочисленному основанию 16. Обычно в качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 и латинские буквы от A до F для обозначения цифр от 1010 до 1510, то есть (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).

Перевод чисел из шестнадцатеричной системы в десятичную

Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.

Например, требуется перевести шестнадцатеричное число 5A3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:

5A316 = 3·160+10·161+5·162
= 3·1+10·16+5·256 = 3+160+1280 = 144310

Перевод чисел из двоичной системы в шестнадцатеричную

Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой.

Например:   0101101000112 = 0101 1010 0011 = 5A316

   Десяти́чная система счисления — позиционная система счисления по целочисленному основанию 10. Одна из наиболее распространённых систем. В ней используются цифры 1, 2, 3, 4,5, 6, 7, 8, 9, 0 (ноль), называемые арабскими цифрами. Предполагается, что основание 10 связано с количеством пальцев рук у человека.

  Десятичная непозиционная система счисления с единичным кодированием десятичных цифр возникла во второй половине третьего тысячелетия до н. э. в древнем Египте. В другой великой цивилизации — вавилонской— за две тысячи лет до н. э. внутри шестидесятеричных разрядов использовалась позиционная десятичная система счисления с единичным кодированием десятичных цифр.

Древнейшая известная запись позиционной десятичной системы обнаружена в Индии в 595 г. Нуль в то время применялся не только в Индии, но и в Китае. В этих старинных системах для записи одинакового числа использовались символы, рядом с которыми дополнительно помечали, в каком разряде они стоят. Потом перестали помечать разряды, но число всё равно можно прочитать, так как у каждого разряда есть своя позиция. А если позиция пустая, её нужно пометить нулём. В поздних вавилонских текстах такой знак стал появляться, но в конце числа его не ставили. Лишь в Индии нуль окончательно занял своё место, эта запись распространилась затем по всему миру.

  Индийская нумерация пришла сначала в арабские страны, затем и в Западную Европу. О ней рассказал среднеазиатский математик аль-Хорезми. Простые и удобные правила сложения и вычитания чисел, записанных в позиционной системе, сделали её особенно популярной. А поскольку труд аль-Хорезми был написан на арабском, то за индийской нумерацией в Европе закрепилось неправильное название — «арабская» (арабские цифры).

  Восьмери́чная систе́ма счисле́ния — позиционная целочисленная система счисления с основанием 8. Для представления чисел в ней используются цифры 0 до 7.

Восьмеричная система часто используется в областях, связанных с цифровыми устройствами. Характеризуется лёгким переводом восьмеричных чисел в двоичные и обратно, путём замены восьмеричных чисел на триплеты двоичных. Ранее широко использовалась в программировании и вообще компьютерной документации, однако в настоящее время почти полностью вытеснена шестнадцатеричной.

Таблица перевода чисел

Tech Stuff — Hexadecimal, Decimal and Binary

Основной единицей, используемой в компьютерном мире, является байт (также известный как октет), байт (или октет) состоит из 8 битов (также известных как двоичные цифры). Большинство современных систем используют кратные байты, таким образом, 16-битная система состоит из 2 байтов (2 x 8 = 16), 32-битная система состоит из 4 байтов (4 x 8 = 32), а 64-битная система состоит из 2 байтов (4 x 8 = 32). имеет 8 байт (8 x 8 = 64). Термин слово , как и в описании 32-битное слово, в значительной степени исчез из технического лексикона.

Содержимое любого байта, например, в ячейке памяти или в сети, может быть выражено во многих системах нумерации . Наиболее часто используемые системы нумерации: Десятичная , Шестнадцатеричная и Двоичная :

Система нумерации База Диапазон Примечания
Десятичный основание 10 0 — 1,2,3… Самая распространенная система счисления — долларовая, метрическая и т.д. Байт (8 бит) имеет 256 возможных значений в диапазоне 0 — 255
Двоичный база 2 0 — 1 Базовый уровень, на котором работает электронная схема компьютера — один бит.
Шестнадцатеричный база 16 0-9, А-Ф Каждый шестнадцатеричный символ представляет 4 бита (0 — 15 десятичных), которые называются полубайтом (маленький байт — честно!). Байт (или октет) состоит из 8 бит, поэтому он всегда представлен двумя шестнадцатеричными символами в диапазоне от 00 до FF.

Историческая справка: Когда-то, когда мир и даже автор этой страницы были молоды, компьютеры были построены с 12-битными, 24-битными и даже 36-битными словами (в этом был какой-то смысл тогда просто выглядит странно сегодня). Каждый из этих размеров слова делится на 3 и использует восьмеричную систему счисления (с основанием 8). Каждый 3-битный элемент содержит 8 значений в диапазоне от 0 до 7. Таким образом, ячейка памяти с 12-битным двоичным значением 000.001.100.111 будет записана в восьмеричной форме как 0147.

Нумерация битов

При работе с двоичными данными каждый бит внутри байта (октета) может потребоваться идентифицировать с помощью метода, называемого нумерацией битов. Нумерация битов может быть очень запутанной, поскольку различные стандартные органы принимают разные соглашения. Ниже приведены все допустимые и используемые соглашения о нумерации битов для описания 8-битного байта (октета).

Содержимое памяти 0 0 0 0 0 0 0 0
Правила нумерации битов
Слева направо основание 0 (IETF) 0 1 2 3 4 5 6 7
Основание слева направо 1 1 2 3 4 5 6 7 8
Справа налево основание 1 (ITU) 8 7 6 5 4 3 2 1
Степень числа 2 7 6 5 4 3 2 1 0

Всегда проверяйте, какое соглашение используется в любой спецификации. Мы смирились с неизбежным и используем стандарт слева направо с основанием 0 (IETF) , поскольку благодаря Интернету он широко используется и, надеюсь, столь же широко понятен. Обоснование IETF для этого стандарта заключается в том, что он также однозначно представляет то, что называется сетевым порядком , то есть бит 0 идет в сеть первым, бит 1 вторым и так далее. Биты также имеют тенденцию выходить из сети в том же порядке, в котором они были отправлены. Использование сетевого порядка необходимо, поскольку внутреннее (машинное) представление данных может сильно различаться (вся эта ерунда с обратным порядком байтов и прямым порядком байтов), но когда данные загружаются в сеть, они должны быть в согласованном порядке, который может быть использован любая система, независимо от ее внутреннего представления, которая хочет использовать данные.

Наконец, при работе с двоичными файлами вы часто будете сталкиваться с терминами «старший значащий бит» (MSB) и «наименее значащий бит» (LSB). MSB всегда находится СЛЕВА, а LSB — СПРАВА. Таким образом, при использовании нумерации битов IETF старший бит — это бит 0, а младший бит — бит 7, тогда как при использовании нумерации битов ITU старший бит — это бит 8, а младший бит — бит 1. Совершенно ясно, верно?

8-битный байт (октет) Таблица преобразования:

Преобразование IPv4 из десятичного числа в шестнадцатеричное

Десятичное число Шестнадцатеричный Двоичный Десятичный Шестнадцатеричный Двоичный
0 00 0000 0000 128 80 1000 0000
1 01 0000 0001 129 81 1000 0001
2 02 0000 0010 130 82 1000 0010
3 03 0000 0011 131 83 1000 0011
4 04 0000 0100 132 84 1000 0100
5 05 0000 0101 133 85 1000 0101
6 06 0000 0110 134 86 1000 0110
7 07 0000 0111 135 87 1000 0111
8 08 0000 1000 136 88 1000 1000
9 09 0000 1001 137 89 1000 1001
10 0000 1010 138 1000 1010
11 0000 1011 139 1000 1011
12 0000 1100 140 1000 1100
13 0000 1101 141 1000 1101
14 0000 1110 142 1000 1110
15 0000 1111 143 1000 1111
16 10 0001 0000 144 90 1001 0000
17 11 0001 0001 145 91 1001 0001
18 12 0001 0010 146 92 1001 0010
19 13 0001 0011 147 93 1001 0011
20 14 0001 0100 148 94 1001 0100
21 15 0001 0101 149 95 1001 0101
22 16 0001 0110 150 96 1001 0110
23 17 0001 0111 151 97 1001 0111
24 18 0001 1000 152 98 1001 1000
25 19 0001 1001 153 99 1001 1001
26 0001 1010 154 1001 1010
27 0001 1011 155 1001 1011
28 0001 1100 156 1001 1100
29 0001 1101 157 1001 1101
30 0001 1110 158 1001 1110
31 1F 0001 1111 159 1001 1111
32 20 0010 0000 160 А0 1010 0000
33 21 0010 0001 161 А1 1010 0001
34 22 0010 0010 162 А2 1010 0010
35 23 0010 0011 163 А3 1010 0011
36 24 0010 0100 164 А4 1010 0100
37 25 0010 0101 165 А5 1010 0101
38 26 0010 0110 166 А6 1010 0110
39 27 0010 0111 167 А7 1010 0111
40 28 0010 1000 168 А8 1010 1000
41 29 0010 1001 169 А9 1010 1001
42 0010 1010 170 АА 1010 1010
43 0010 1011 171 АБ 1010 1011
44 0010 1100 172 АС 1010 1100
45 2D 0010 1101 173 н. э. 1010 1101
46 0010 1110 174 АЕ 1010 1110
47 2F 0010 1111 175 АФ 1010 1111
48 30 0011 0000 176 В0 1011 0000
49 31 0011 0001 177 В1 1011 0001
50 32 0011 0010 178 В2 1011 0010
51 33 0011 0011 179 В3 1011 0011
52 34 0011 0100 180 В4 1011 0100
53 35 0011 0101 181 В5 1011 0101
54 36 0011 0110 182 В6 1011 0110
55 37 0011 0111 183 В7 1011 0111
56 38 0011 1000 184 В8 1011 1000
57 39 0011 1001 185 В9 1011 1001
58 0011 1010 186 БА 1011 1010
59 0011 1011 187 ББ 1011 1011
60 0011 1100 188 до н. э. 1011 1100
61 3D 0011 1101 189 БД 1011 1101
62 0011 1110 190 БЭ 1011 1110
63 3F 0011 1111 191 БФ 1011 1111
64 40 0100 0000 192 С0 1100 0000
65 41 0100 0001 193 С1 1100 0001
66 42 0100 0010 194 С2 1100 0010
67 43 0100 0011 195 С3 1100 0011
68 44 0100 0100 196 С4 1100 0100
69 45 0100 0101 197 С5 1100 0101
70 46 0100 0110 198 С6 1100 0110
71 47 1100 0111 199 С7 1100 0111
72 48 0100 1000 200 С8 1100 1000
73 49 0100 1001 201 С9 1100 1001
74 0100 1010 202 СА 1100 1010
75 0100 1011 203 КБ 1100 1011
76 0100 1100 204 СС 1100 1100
77 0100 1101 205 CD 1100 1101
78 0100 1110 206 СЕ 1100 1110
79 4F 1100 1111 207 КФ 1100 1111
80 50 0101 0000 208 Д0 1101 0000
81 51 0101 0001 209 Д1 1101 0001
82 52 0101 0010 210 Д2 1101 0010
83 53 0101 0011 211 Д3 1101 0011
84 54 0101 0100 212 Д4 1101 0100
85 55 0101 0101 213 Д5 1101 0101
86 56 0101 0110 214 Д6 1101 0110
87 57 1101 0111 215 Д7 1101 0111
88 58 0101 1000 216 Д8 1101 1000
89 59 0101 1001 217 Д9 1101 1001
90 0101 1010 218 DA 1101 1010
91 0100 1011 219 ДБ 1101 1011
92 0101 1100 220 DC 1101 1100
93 0101 1101 221 ДД 1101 1101
94 0101 1110 222 ДЭ 1101 1110
95 5F 1101 1111 223 ДФ 1101 1111
96 60 0110 0000 224 Э0 1110 0000
97 61 0110 0001 225 Е1 1110 0001
98 62 0110 0010 226 Е2 1110 0010
99 63 0110 0011 227 Е3 1110 0011
100 64 0110 0100 228 Е4 1110 0100
101 65 0110 0101 229 Е5 1110 0101
102 66 0110 0110 230 Е6 1110 0110
103 67 1110 0111 231 Е7 1110 0111
104 68 0110 1000 232 Е8 1110 1000
105 69 0110 1001 233 Е9 1110 1001
106 0110 1010 234 ЕА 1110 1010
107 0110 1011 235 ЭБ 1110 1011
108 0110 1100 236 ЕС 1110 1100
109 0110 1101 237 ЭД 1110 1101
110 0110 1110 238 ЕЕ 1110 1110
111 6F 1110 1111 239 ЭФ 1110 1111
112 70 0111 0000 240 Ф0 1111 0000
113 71 0111 0001 241 Ф1 1111 0001
114 72 0111 0010 242 Ф2 1111 0010
115 73 0111 0011 243 Ф3 1111 0011
116 74 0111 0100 244 Ф4 1111 0100
117 75 0111 0101 245 Ф5 1111 0101
118 76 0111 0110 246 Ф6 1111 0110
119 77 1111 0111 247 Ф7 1111 0111
120 78 0111 1000 248 Ф8 1111 1000
121 79 0111 1001 249 Ф9 1111 1001
122 0111 1010 250 ФА 1111 1010
123 0111 1011 251 ФБ 1111 1011
124 0111 1100 252 ФК 1111 1100
125 0111 1101 253 ФД 1111 1101
126 0111 1110 254 ФЭ 1111 1110
127 0111 1111 255 ФФ 1111 1111

Преобразование десятичного IPv4 в шестнадцатеричный

Чтобы преобразовать десятичный IPv4-адрес с точками в шестнадцатеричный, возьмите каждое десятичное значение с точками и преобразуйте его с помощью шестнадцатеричного калькулятора (подойдет стандартный калькулятор Windows в научном режиме или режиме программиста). Это даст:

IP-адрес в десятичном формате с точками = 192.168.0.5
Десятичный 192 = Шестнадцатеричный = C0
Десятичный 168 = Шестнадцатеричный = A8
Десятичный 0 = Шестнадцатеричный = 00
Десятичный 5 = Шестнадцатеричный = 05
IP-адрес в шестнадцатеричном формате с точками = C0.A8.00.05
 


Проблемы, замечания, предложения, исправления (включая битые ссылки) или что-то добавить? Пожалуйста, найдите время от занятой жизни, чтобы «написать нам» (вверху экрана), веб-мастеру (ниже) или в информационную поддержку на zytrax. У вас будет теплое внутреннее сияние до конца дня.

Таблица преобразования десятичных чисел в двоичные — Изучение двоичных чисел

Автор Rick Regan 30 июня 2009 г.

Вот таблица, которую вы можете использовать для преобразования небольших целых чисел — целых чисел от 0 до 255 — непосредственно между десятичными и двоичными (в качестве альтернативы использованию десятичного/двоичного преобразователя):

Целые числа от 0 до 255, в десятичном и двоичном формате
Декабрь Двоичный Декабрь Двоичный Декабрь Двоичный Декабрь Двоичный
0 0 64 1000000 128 10000000 192 11000000
1 1 65 1000001 129 10000001 193 11000001
2 10 66 1000010 130 10000010 194 11000010
3 11 67 1000011 131 10000011 195 11000011
4 100 68 1000100 132 10000100 196 11000100
5 101 69 1000101 133 10000101 197 11000101
6 110 70 1000110 134 10000110 198 11000110
7 111 71 1000111 135 10000111 199 11000111
8 1000 72 1001000 136 10001000 200 11001000
9 1001 73 1001001 137 10001001 201 11001001
10 1010 74 1001010 138 10001010 202 11001010
11 1011 75 1001011 139 10001011 203 11001011
12 1100 76 1001100 140 10001100 204 11001100
13 1101 77 1001101 141 10001101 205 11001101
14 1110 78 1001110 142 10001110 206 11001110
15 1111 79 1001111 143 10001111 207 11001111
16 10000 80 1010000 144 10010000 208 11010000
17 10001 81 1010001 145 10010001 209 11010001
18 10010 82 1010010 146 10010010 210 11010010
19 10011 83 1010011 147 10010011 211 11010011
20 10100 84 1010100 148 10010100 212 11010100
21 10101 85 1010101 149 10010101 213 11010101
22 10110 86 1010110 150 10010110 214 11010110
23 10111 87 1010111 151 10010111 215 11010111
24 11000 88 1011000 152 10011000 216 11011000
25 11001 89 1011001 153 10011001 217 11011001
26 11010 90 1011010 154 10011010 218 11011010
27 11011 91 1011011 155 10011011 219 11011011
28 11100 92 1011100 156 10011100 220 11011100
29 11101 93 1011101 157 10011101 221 11011101
30 11110 94 1011110 158 10011110 222 11011110
31 11111 95 1011111 159 10011111 223 11011111
32 100000 96 1100000 160 10100000 224 11100000
33 100001 97 1100001 161 10100001 225 11100001
34 100010 98 1100010 162 10100010 226 11100010
35 100011 99 1100011 163 10100011 227 11100011
36 100100 100 1100100 164 10100100 228 11100100
37 100101 101 1100101 165 10100101 229 11100101
38 100110 102 1100110 166 10100110 230 11100110
39 100111 103 1100111 167 10100111 231 11100111
40 101000 104 1101000 168 10101000 232 11101000
41 101001 105 1101001 169 10101001 233 11101001
42 101010 106 1101010 170 10101010 234 11101010
43 101011 107 1101011 171 10101011 235 11101011
44 101100 108 1101100 172 10101100 236 11101100
45 101101 109 1101101 173 10101101 237 11101101
46 101110 110 1101110 174 10101110 238 11101110
47 101111 111 1101111 175 10101111 239 11101111
48 110000 112 1110000 176 10110000 240 11110000
49 110001 113 1110001 177 10110001 241 11110001
50 110010 114 1110010 178 10110010 242 11110010
51 110011 115 1110011 179 10110011 243 11110011
52 110100 116 1110100 180 10110100 244 11110100
53 110101 117 1110101 181 10110101 245 11110101
54 110110 118 1110110 182 10110110 246 11110110
55 110111 119 1110111 183 10110111 247 11110111
56 111000 120 1111000 184 10111000 248 11111000
57 111001 121 1111001 185 10111001 249 11111001
58 111010 122 1111010 186 10111010 250 11111010
59 111011 123 1111011 187 10111011 251 11111011
60 111100 124 1111100 188 10111100 252 11111100
61 111101 125 1111101 189 10111101 253 11111101
62 111110 126 1111110 190 10111110 254 11111110
63 111111 127 1111111 191 10111111 255 11111111

Имеется четыре столбца по 64 записи в каждой, всего 256 записей.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *