Шестнадцатеричная система счисления. Перевод чисел из одной системы счисления в другую онлайн
Читайте также
Десятичная система | 16-ричная система | Десятичная система | 16-ричная система |
---|---|---|---|
0 | 0 (0000) | 10 | A (1010) |
1 | 1(0001) | 11 | B (1011) |
2 | 2 (0010) | 12 | C (1100) |
3 | 3 (0011) | 13 | D (1101) |
4 | 4 (0100) | 14 | E (1110) |
5 | 5 (0101) | 15 | F (1111) |
6 | 6 (0110) | 16 | 10 (00010000) |
7 | 7 (0111) | 17 | 11 (00010001) |
8 | 8 (1000) | 18 | 12 (00010010) |
9 | 9 (1001) | 19 | 13 (00010011) |
Для перевода 16-ричного числа в десятичное необходимо умножить значение младшего (нулевого) разряда на единицу, значение следующего (первого) разряда на 16, второго разряда на 256 (16 2) и т.д., а затем сложить все произведения. Например, возьмем число A17F :
A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343
Десятичная система | 8-ричная система | Десятичная система | 8-ричная система |
---|---|---|---|
0 | 0 (000) | 10 | 12 (001010) |
1 | 1(001) | 11 | 13 (001011) |
2 | 2 (010) | 12 | 14 (001100) |
3 | 3 (011) | 13 | 15 (001101) |
4 | 4 (100) | 14 | 16 (001110) |
5 | 5 (101) | 15 | 17 (001111) |
6 | 6 (110) | 16 | 20 (010000) |
7 | 7 (111) | 17 | 21 (010001) |
8 | 10 (001000) | 18 | 22 (010010) |
9 | 11 (001001) | 19 | 23 (010011) |
Но каждому специалисту по цифровой аппаратуре (разработчику, оператору, ремонтнику, программисту и т.д.) необходимо научиться так же свободно обращаться с 16-ричной и двоичной системами, как и с обычной десятичной, чтобы никаких переводов из системы в систему не требовалось.
Значительно реже, чем 16-ричное, используется восьмеричное кодирование , которое строится по такому же принципу, что и 16-ричное, но двоичные разряды разбиваются на группы по три разряда. Каждая группа (разряд кода) затем обозначается одним символом. Каждый разряд 8-ричного кода может принимать восемь значений: 0, 1, 2, 3, 4, 5, 6, 7 (табл. 2.5) .
Помимо рассмотренных кодов, существует также и так называемое двоично-десятичное представление чисел. Как и в 16-ричном коде, в двоично-десятичном коде каждому разряду кода соответствует четыре двоичных разряда, однако каждая группа из четырех двоичных разрядов может принимать не шестнадцать, а только десять значений, кодируемых символами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. То есть одному десятичному разряду соответствует четыре двоичных. В результате получается, что написание чисел в двоично-десятичном коде ничем не отличается от написания в обычном десятичном коде (табл. 2.6) , но в реальности это всего лишь специальный двоичный код, каждый разряд которого может принимать только два значения: 0 и 1. Двоично-десятичный код иногда очень удобен для организации десятичных цифровых индикаторов и табло.
Десятичная система | Двоично-десятичная система | Десятичная система | Двоично-десятичная система |
---|---|---|---|
0 | 0 (0000) | 10 | 10 (00010000) |
1 | 1(0001) | 11 | 11 (00010001) |
2 | 2 (0010) | 12 | 12 (00010010) |
3 | 3 (0011) | 13 | 13 (00010011) |
4 | 4 (0100) | 14 | 14 (00010100) |
5 | 5 (0101) | 15 | 15 (00010101) |
6 | 6 (0110) | 16 | 16 (00010110) |
7 | 7 (0111) | 17 | 17 (00010111) |
8 | 8 (1000) | 18 | 18 (00011000) |
9 | 9 (1001) | 19 | 19 (00011001) |
В двоичном коде над числами можно проделывать любые арифметические операции : сложение , вычитание , умножение , деление .
Рассмотрим, например, сложение двух 4-разрядных двоичных чисел. Пусть надо сложить число 0111 (десятичное 7) и 1011 (десятичное 11). Сложение этих чисел не сложнее, чем в десятичном представлении:
При сложении 0 и 0 получаем 0, при сложении 1 и 0 получаем 1, при сложении 1 и 1 получаем 0 и перенос в следующий разряд 1. Результат - 10010 (десятичное 18). При сложении любых двух n-разрядных двоичных чисел может получиться n-разрядное или (n+1) -разрядное число.
Точно так же производится вычитание . Пусть из числа 10010 (18) надо вычесть число 0111 (7). Записываем числа с выравниванием по младшему разряду и вычитаем точно так же, как в случае десятичной системы:
При вычитании 0 из 0 получаем 0, при вычитании 0 из 1 получаем 1, при вычитании 1 из 1 получаем 0, при вычитании 1 из 0 получаем 1 и заем 1 в следующем разряде. Результат - 1011 (десятичное 11).
При вычитании возможно получение отрицательных чисел, поэтому необходимо использовать двоичное представление отрицательных чисел.
Для одновременного представления как двоичных положительных, так и двоичных отрицательных чисел чаще всего используется так называемый дополнительный код . Отрицательные числа в этом коде выражаются таким числом, которое, будучи сложено с положительным числом такой же величины, даст в результате нуль. Для того чтобы получить отрицательное число, надо поменять все биты такого же положительного числа на противоположные (0 на 1, 1 на 0) и прибавить к результату 1. Например, запишем число –5. Число 5 в двоичном коде выглядит 0101. Заменяем биты на противоположные: 1010 и прибавляем единицу: 1011. Суммируем результат с исходным числом: 1011 + 0101 = 0000 (перенос в пятый разряд игнорируем).
по модулю 2 два двоичных числа 0111 и 1011:
Среди других побитовых операций над двоичными числами можно отметить функцию И и функцию ИЛИ. Функция И дает в результате единицу только тогда, когда в соответствующих битах двух исходных чисел обе единицы, в противном случае результат -0. Функция ИЛИ дает в результате единицу тогда, когда хотя бы один из соответствующих битов исходных чисел равен 1, в противном случае результат 0.
Привычная для человека система счисления – десятичная. В ее основу входят десять цифр от 0 до 9. Шестнадцатеричную систему отличает наличие в ней первых шести букв латинского алфавита для записи чисел помимо основных цифр. То есть после цифры 9 следует символ «A», который соответствует числу 10 для десятичной системы. Соответственно, F в шестнадцатеричной системе – это 16 в десятичной. Использование шестнадцати символов в системе – неслучайный выбор.
Единица информации – бит. Восемь бит образуют байт. Существует понятие, как машинное слово – это единица данных, представляющая собой два , то есть шестнадцать бит. Таким образом, используя шестнадцать различных символов, можно описывать любую информацию, которая при обмене данных будет наименьшей частицей. С ними можно производить любые арифметические действия, результат, соответственно, получится тоже в шестнадцатеричной системе.
Для того чтобы отличать, что число записано в шестнадцатеричной системе, после него записывают букву «h» или нижний индекс «16».
Применение
Наиболее широкое применение шестнадцатеричной системы счисления – это коды ошибок программных продуктов, например, операционной системы. Числа, заложенные в этих кодах, стандартизированы. Имея специальную таблицу, всегда можно определить, что именно означает та или иная ошибка.
В языках низкого уровня, максимально приближенным к машинным кодам шестнадцатеричная система применяется для написания программ. Многие программисты используют ее и при работе с языками высокого уровня, потому что числа в этой системе при помощи специальной таблицы соответствия легко переводятся в двоичную систему, на которой основана работа всей цифровой техники. Любая информация в компьютере, будь то музыкальный файл или текстовый документ, после трансляции представлена последовательностью исходного двоичного кода, а его удобнее просматривать представленным символами шестнадцатеричной системы.
Также одно из применений шестнадцатеричных символов – описание цветовых схем, то есть три компонента R, G, B описываются соответствующим данной системе способом. Данный подход к записи получил название шестнадцатеричный цвет
Возможность просмотреть программу в шестнадцатеричном коде позволяет отладить ее, внести изменения, а злоумышленниками данный подход используется для взлома программ.
Теперь предстоит совсем легкая прогулка, связанная с шестнадцатеричной системой счисления. В этом случае, надеемся, вы подозреваете и, видимо, справедливо, что у нас должно теперь быть 16 различных цифр.
Но, как мы знаем, традиционных ("арабских") цифр всего десять. А требуется шестнадцать. Получается, что не хватает шести знаков.
Замечание
Таким образом, возникает чисто дизайнерская задача по теме "Знаки" - придумать недостающие символы для цифр
.
Значит, в свое время специалистам необходимо было придумать какие-нибудь новые знаки. Но когда-то, в начале компьютерной эры, особого выбора в знаках не было. Программисты располагали только знаками цифр и букв. Поэтому они пошли по элементарному пути: взяли первые буквы латинского алфавита в качестве цифр, тем более что исторически это не первый случай (мы уже упоминали, что первоначально вместо цифр многие народы использовали буквы).
Замечание
Надеемся, что всем понятно, почему в этом случае нельзя использовать, например, числа "10", "11", "12" и т. д.? Потому что, если мы говорим о шестнадцатеричной системе счисления, то должно быть шестнадцать цифр
, а не чисел
.
И десятичное число "10" стали обозначать латинской буквой "А" (точнее, "цифрой А"). Соответственно, дальше идут цифры "В", "С", "D", "Е" и "Р.
Поскольку мы намеревались построить шестнадцатеричную систему, то, начиная с нуля, здесь как раз и получится 16 цифр. Например, цифра "D" - это десятичное число "13", а цифра "F" - это десятичное число "15".
Когда к шестнадцатеричному числу "F" прибавляем единицу, то, поскольку эти цифры у нас кончились, в этом разряде ставим "О", а в следующий разряд переносим единицу, поэтому получается, что десятичное число "16" будет представлено в шестнадцатеричной системе счисления числом "10", т. е. получается "шестнадцатеричная десятка". Соединим десятичные и шестнадцатеричные числа в единую таблицу (табл. 4.5).
Таблица 4.5 . Соответствие десятичных и шестнадцатеричных чисел.
Десятичное число | Шестнадцатеричное число | Десятичное число | Шестнадцатеричное число |
---|---|---|---|
0-9 | 0-9 | 29 | 1D |
10 | А | 30 | 1Е |
11 | В | 31 | 1F |
12 | С | 32-41 | 20-29 |
13 | D | 42-47 | 2A-2F |
14 | Е | 48-255 | 30-FF |
15 | F | 256 | 100 |
16 | 10 | 512 | 200 |
17-25 | 11-19 | 1024 | 400 |
26 | 1А | 1280 | 500 |
27 | 1В | 4096 | 1000 |
28 | 1C |
Шестнадцатеричная система используется, чтобы более компактно записывать двоичную информацию. В самом деле, "шестнадцатеричная тысяча", состоящая из четырех разрядов, в двоичном виде занимает тринадцать разрядов (1000 16 = 1000000000000 2).
При обсуждении систем счисления неоднократно фигурировали "десятки", "сотни" и "тысячи", поэтому необходимо обратить внимание на так называемые "круглые" числа.
Шестнадцатеричная система счисления имеет алфавит, состоящий из 16 цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.
При записи числа в шестнадцатеричной системе для записи цифр обозначающих числа 10, 11, 12. 13, 14. 15 используются соответственно буквы А, В, С, D, E, F.
Перевод чисел из шестнадцатеричной системы в десятичную
Перевести любое шестнадцатеричное число в десятичное можно по уже известной формуле
Примеры.
АЕ07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .
100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .
58 16 =5∙16 1 +8∙16 0 =.88 10 .
2А 16 =2∙16 1 +10∙16 0 =42 10 .
Перевод числа из десятичной системы в шестнадцатеричную осуществляется также, как в двоичную.
Перевод чисел из шестнадцатеричной системы в двоичную и обратно
Перевести любое шестнадцатеричное число в двоичное можно следующим образом. Каждая цифра шестнадцатеричной записи числа записывается четырехзначным двоичным числом - тетрадой . После этого нули, стоящие слева, можно отбросить.
2) 2A= 0010 1010 2 = 101010 2 . |
3) 58 16 = 0101 1000 2 = 1011000 2 . |
И наоборот, перевести любое двоичное число в шестнадцатеричное можно аналогичным образом. Каждые четыре двоичные цифры, считая справа налево, записываются одной шестнадцатеричной цифрой. Эти цифры располагаются также справа налево.
Примеры.
2. 101010 2 = 10 1010 2 = 2A.
3. 1011000 2 = 101 1000 2 = 58 16 .
Восьмеричная система счисления
Восьмеричная система счисления имеет алфавит, состоящий из 8 цифр:
0, 1, 2, 3, 4, 5, 6, 7.
Перевод числа из десятичной системы в восьмеричную и обратно осуществляется по аналогии с переводом в двоичную / из двоичной.
Перевод чисел из восьмеричной системы в двоичную и обратно
Каждая цифра восьмеричной записи числа записывается трехзначным двоичным числом - триадой .
Примеры.
2563 8 = 010 101 110 011 2 =10101110011 2 .
1001101 2 = 001 001 101 2 = 115 8 .
Методические материалы для лабораторного занятия №1
Тема лабораторного занятия: Системы счисления. Измерение информации.
Количество часов: 2.
Примеры с решениями
Перевод из p -ичной системы в 10-ичную. Пусть надо перевести число в некоторой системе счисления в десятичную. Для этого надо представить его в виде
11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .
2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.
Перевод из 10-ичной системы в p -ичную.
2.1 98 10 → Х 2 .
Делим число на 2. Затем делим неполное частное на 2. Продолжаем до тех пор, пока неполное частное не станет меньше 2, т.е. равным 1.
98: 2 = 49. Остаток - 0 .
49: 2 = 24. Остаток - 1 .
24: 2 = 12. Остаток - 0 .
12: 2 = 6. Остаток - 0 .
6: 2 = 3. Остаток - 0 .
3: 2 = 1 . Остаток - 1 .
Так как последнее неполное частное равно 1, процесс окончен. Записываем все остатки снизу вверх, начиная с последнего неполного частного, и получаем число 1100010. Итак 98 10 = 1100010 2 .
2.2 2391 10 → Х 16 .
Делим число на 16. Затем делим неполное частное на 16. Продолжаем до тех пор, пока неполное частное не станет меньше 16.
2391: 16 = 149. Остаток - 7 .
149: 16 = 9 . Остаток - 5 .
Так как последнее неполное частное (9) меньше 16, процесс окончен. Записываем, начиная с последнего неполного частного, все остатки снизу вверх и получаем число 957. Итак 2391 10 = 957 16 .
2.3 12165 10 → Х 2 .
Если переводить делением в двоичную систему, то получится довольный громоздкий процесс. Можно сначала перевести число в восьмеричную систему, а затем заменять восьмеричные цифры справа налево триадами.
12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.
Определение основания системы счисления p .
Один мальчик так написал о себе: «Пальцев у меня 24, на каждой руке по 5, а на ногах 12». Как такое может быть?
Решение. Надо определить основание системы счисления p . Так как мы знаем, что пальцев на ногах всего 10 10 , то 12 p =1∙p +2 = 10 10 . Отсюда получаем уравнение p + 2 = 10 p = 8. Значит, мальчик имел в виду числа в восьмеричной системе. Действительно, всего пальцев 24 8 = 2∙8+4 = 20 10 , а на ногах - 12 8 = 1∙8+2 = 10 10 .
Возникла в древнем Вавилоне. В Индии система работает в виде позиционной десятичной нумерации с использованием нуля, у индусов данную систему чисел позаимствовала арабская нация, у них, в свою очередь, взяли европейцы. В Европе эту систему стали называть арабской.
Позиционная система счисления — значение всех цифр зависит от позиции (разряда) данной цифры в числе.
Примеры , стандартная десятичная система счисления - это позиционная система. Допустим, дано число 453 . Цифра 4 обозначает сотни и соответствует числу 400, 5 — кол-во десятков и соответствует значению 50 , а 3 — единицы и значению 3 . Легко заметить, что с увеличением разряда увеличивается значение. Таким образом, заданное число запишем в виде суммы 400+50+3=453.
Шестнадцатеричная система счисления.
Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления. Основанием шестнадцатеричной системы счисления является число 16.
Записывая числа в восьмеричной системе счисления мы получаем довольно компактные выражения, однако в шестнадцатеричной системе мы получаем выражения более компактными.
Первыми десятью цифрами из шестнадцати шестнадцатеричных цифрах является стандартный интервал 0 - 9 , последующие шесть цифр выражают при помощи первых букв латинского алфавита: A , B , C , D , E , F . Перевод из шестнадцатеричной системы в двоичную систему и в обратную сторону делают аналогично процессу для восьмеричной системы.
Применение шестнадцатеричной системы счисления.
Шестнадцатеричную систему счисления довольно хорошо используют в современных компьютерах, например с ее помощью указывают цвет: #FFFFFF — белый цвет.
Перевод чисел из одной системы счисления в другую.
Перевод чисел из шестнадцатеричной системы в десятичную.
Что бы перевести шестнадцатеричное число в десятичное , нужно заданное число привести к виду суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Например , переведем шестнадцатеричное число 5A3 в десятичное. Здесь 3 цифры. Исходя их выше сказанного правила, приведем его к виду суммы степеней с основанием 16:
5A3 16 = 3·16 0 +10·16 1 +5·16 2 = 3·1+10·16+5·256 = 3+160+1280 = 1443 10
Перевод чисел из двоичной системы в шестнадцатеричную и наоборот.
Для перевода многозначного двоичного числа в шестнадцатеричную систему необходимо разделить его на тетрады справа налево и поменять все тетрады соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную необходимо поменять каждую все цифры на соответствующие тетрады из таблицы перевода, которую вы найдете ниже.
Например :
010110100011 2 = 0101 1010 0011 = 5A3 16
Таблица перевода чисел.
Алгоритм перевода чисел из одной системы счисления в другую.
1. Из десятичной системы счисления:
- делим число на основание переводимой системы счисления;
- находим остаток от деления целой части числа;
- записываем все остатки от деления в обратном порядке;
2. Из двоичной системы счисления:
- для перевода в десятичную систему счисления находим сумму произведений основания 2 на соответствующую степень разряда;
- для перевода числа в восьмеричную разбиваем число на триады.
Например, 1000110 = 1 000 110 = 1068
- для перевода числа из двоичной системы счисления в шестнадцатеричную разбиваем число на группы по 4 разряда.
Например, 1000110 = 100 0110 = 4616.
Таблицы для перевода:
Двоичная СС |
Шестнадцатеричная СС |
0000 |
|
0001 |
|
0010 |
|
0011 |
|
0100 |
|
0101 |
|
0110 |
|
0111 |
|
1000 |
|
1001 |
|
1010 |
|
1011 |
|
1100 |
|
1101 |
|
1110 |
|
1111 |
Двоичная СС |