Восьмеричная и шестнадцатеричная системы счислений
Существует множество способов записи чисел с помощью цифр. Эти способы грубо можно разделить на три части: позиционные системы счисления; смешанные системы счисления; непозиционные системы счисления. Денежные знаки - это пример смешанной системы счисления. В непозиционной системе счисления величина числа не зависит от положения цифры в представлении числа. Ярким примером непозиционной системы счисления является римская система. Представление чисел с помощью арабских цифр - самая распространённая позиционная система счисления, она называется «десятичной системой счисления». Десятичной системой она называется потому, что использует десять цифр. Вот эти цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Внимательно их пересчитайте – их ровно десять. Заметьте: максимальная цифра (9) на единичку меньше количества цифр (10). Компьютер, в отличие от человека, хорошо разбирается в двоичной системе, он использует цифры: 0 и 1. Обратите внимание, что здесь система двоичная, а максимальная цифра 1. Программисты пользуются, для упрощения себе жизни, ещё восьмеричной и шестнадцатеричной системами счисления. Количество цифр используемых в системе счисления называется «основанием». В десятичной системе основание равно десяти, в двоичной системе основание равно двум, ну а в восьмеричной и шестнадцатеричной соответственно восьми и шестнадцати. В общем случае в позиционной системе счисления числа представляются следующим образом: (anan − 1...a0)f, где a0,a1,...,an - цифры, а f - основание системы счисления. Если используется десятичная система, то f – можно опустить. Примеры чисел: 110012 - число в двоичной системе счисления, a0 = 1,a1 = 0,a2 = 0,a3 = 1,a4 = 1; 2213 - число в троичной системе счисления, a0 = 1,a1 = 2,a2 = 2; 318 - число в восьмеричной системе счисления, a0 = 1,a1 = 3; 2510 - число в десятичной системе счисления, a0 = 5,a1 = 2; Мы знаем как узнать чему равно число в любой системе счисления. Но как нам получить это число? Представим что у нас есть некоторое число A, и мы хотим получить его представление в системе по основанию f. Как нам это сделать? Мы знаем, что число A можно представить в виде (anan − 1...a0)f, будем из этого исходить. Что будет, если мы поделим это число на f. Получим и остаток от деления a0. Почему a0? Все члены суммы делятся на f без остатка, а последний член a0 в результате деления даёт 0 и a0 в остатке, т.к. максимальное значение цифры всегда на единичку меньше основания системы. Итак мы получили самую правую цифру a0 как остаток от деления и число (anan − 1...a1)f как результат деления числа A на f. Если мы так будем продолжать делить, то получим все цифры a1,a2...an. Возьмём для примера полюбившиеся нам число 25 и получим представление этого числа в двоичной системе счисления: 25 / 2 = 12, остаток 1; 12 / 2 = 6, остаток 0; 6 / 2 = 3, остаток 0; 3 / 2 = 1, остаток 1; 1 / 2 = 0, остаток 1. Что и следовало ожидать, получили: 110012. Представим число 25 в троичной системе счисления: 25 / 3 = 8, остаток 1; 8 / 3 = 2, остаток 2; 2 / 3 = 0, остаток 2. Получили число: 2213. Для закрепления наших знаний проделаем вычисления для восьмеричной и десятичной систем счисления. Восьмеричная система счисления: 25 / 8 = 3, остаток 1; 3 / 8 = 0, остаток 3. Результат: 318. Десятичная система счисления: 25 / 10 = 2, остаток 5; 2 / 10 = 0, остаток 2. Результат: 2510. Задание: расположит по убыванию (не переводя, далее проверим)558 557 5516 - 5516 558 557
|
|
|
|
Преобразование двоичных чисел в десятичные
Допустим, вам дано двоичное число 110011. Какому числу оно эквивалентно? Чтобы ответить на этот вопрос, прежде всего запишите данное число следующим образом:
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 1 | 1 | ||||
32 | +16 | +2 | +1 |
Затем, начиная с двоичной точки, двигайтесь влево. Под каждой двоичной единицей напишите её эквивалент в строчке ниже. Сложите получившиеся десятичные числа. Таким образом, двоичное число 110011 равнозначно 51.
Либо .
|
|
Преобразование десятичных чисел в двоичные
Допустим, нам нужно перевести число 19 в двоичное. Вы можете воспользоваться следующей процедурой :
19 /2 = 9 с остатком 1
9 /2 = 4 c остатком 1
4 /2 = 2 с остатком 0
2 /2 = 1 с остатком 0
1 /2 = 0 с остатком 1
Итак, мы делим каждое частное на 2 и записываем в остаток 1 или 0. Продолжать деление надо пока в делимом не будет 1. Ставим числа из остатка друг за другом, начиная с конца. В результате получаем число 19 в двоичной записи (начиная с конца): 10011.
В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в железе (кремнии, транзисторах, микросхемах), так как для нее требуется всего два устойчивых состояния (0 и 1).
Двоичная система счисления является позиционной системой. В ней используется две цифры: 0 и 1
Если часто придётся работать со степенями двойки. Хорошо бы было их вам поскорее выучить. Вот таблица:
Степень | Значение |
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 | 256 |
9 | 512 |
10 | 1024 |
11 | 2048 |
12 | 4096 |
13 | 8192 |
14 | 16384 |
15 | 32768 |
16 | 65536 |
Минимальной единицей информации считается бит.Бит — это величина, принимающая значение 0 или 1. Любая другая информация может быть закодирована последовательностью из нулей и единиц. Именно в таком виде вся информация представляется в памяти ЭВМ.
|
|
Единицей памяти в современных ЭВМ считается байт.Байты — это 8-разрядные двоичные числа вида — 00000000, 00000001, ..., 11111111. Один байт записывается в виде 8 двоичных знаков информации — нулей и единиц:
1 байт = 8 бит.
Для измерения памяти большого объема используются следующие единицы:
1 Кбайт = 1024 байт (1 килобайт);
1 Мбайт = 1024 Кбайт (1 мегабайт);
1 Гбайт = 1024 Мбайт (1 гигабайт).
Задание: Расположить в порядке возрастания 10 бит, 20 бит, 2 байта, 1010 байт , 1 Кбайт - 10 бит, 2 байта, 20 бит, 1010 байт, 1 Кбайт.
Восьмеричная и шестнадцатеричная системы счислений
Компьютерам очень удобно оперировать двоичными числами, но люди не привыкли работать с большим количеством цифр. Например, чтобы представить в двоичном виде число 1234 потребуется больше 10 двоичных цифр (10011010010). Поэтому были придуманы восьмеричная и шестнадцатеричная системы счислений. Они удобны как и десятичные числа тем, что для представления числа требуется меньшее количество разрядов. А по сравнению с десятичными числами, перевод в двоичное представление очень простой. Это как будто мы двоичное число разбили на группы по три или четыре разряда и каждой двоичной комбинации придумали значок. Вот таблица для восьмеричных цифр:
Таблица 1.6 Соответствие чисел в различных системах счисления
Десятичная | Шестнадцатиричная | Восьмеричная | Двоичная |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 2 | 2 | 10 |
3 | 3 | 3 | 11 |
4 | 4 | 4 | 100 |
5 | 5 | 5 | 101 |
6 | 6 | 6 | 110 |
7 | 7 | 7 | 111 |
8 | 8 | 10 | 1000 |
9 | 9 | 11 | 1001 |
10 | А | 12 | 1010 |
11 | В | 13 | 1011 |
12 | С | 14 | 1100 |
13 | D | 15 | 1101 |
14 | E | 16 | 1110 |
15 | F | 17 | 1111 |
Перевод произвести очень просто, посмотрим на примере числа 10011010010.
Разбиваем его на группы по три цифры: 010 011 010 010. И по таблице переводим: 23228.
Чтобы перевести число в шестнадцатеричное представление разбиваем двоичное число на группы по четыре цифры: 0100 1101 0010. И по таблице переводим: 4D216. С помощью калькулятора Windows мы можем убедиться, что всё проделано верно.
В программистских кругах шестнадцатеричные числа принято предварять значком 0x (например, 0x4D2), такое написание пошло от языка программирования C, либо значком $ (например, $4D2), такая нотация произошла от языка программирования Pascal. Иногда в литературе используют буквы "h" и "b" для обозначения соответственно шестнадцатеричных и двоичных чисел (например, FFh или 1011b).
Задание: Запишите 5678 в двоичной системе счисления (101110111)
Пример 1. Выполнить перевод числа 19 в двоичную систему счисления:
Таким образом, 19 = 100112.
Пример 2. Выполнить перевод числа 19 в шестнадцатеричную систему счисления:
Таким образом, 19 = 1316.
Пример 3. Выполнить перевод числа 123 в шестнадцатеричную систему счисления:
Здесь остаток 11 преобразован в шестнадцатеричную цифру В (см. таблицу) и после этого данная цифра вошла в число. Таким образом, 123 = 7В16.
Пример 4. Выполнить перевод числа 1316 в десятичную систему счисления. Имеем:
1316 = 1*161 + 3*160 = 16 + 3 = 19.
Таким образом, 1316 = 19.
Пример 5. Выполнить перевод числа 100112 в десятичную систему счисления. Имеем:
100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16+0+0+2+1 = 19.
Таким образом, 100112 = 19.
Задание: расположит по убыванию (проверяем)558 557 5516 - 5516 558 557
Перевод из шестнадцатеричной системы счисления в двоичную:
а) каждая цифра исходного числа заменяется тетрадой двоичных цифр в соответствии с таблицей. Если в таблице двоичное число имеет менее 4 цифр, оно дополняется слева незначащими нулями до тетрады;
б) незначащие нули в результирующем числе отбрасываются.
Пример 7. Выполнить перевод числа 1316 в двоичную систему счисления.
По таблице имеем:
· 116 = 12 и после дополнения незначащими нулями двоичного числа 12 = 00012;
· 316 = 112 и после дополнения незначащими нулями двоичного числа 112 = 00112.
Тогда 1316 = 000100112. После удаления незначащих нулей имеем 1316 = 100112.
Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:
а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
б) в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби;
в) оставшаяся дробная часть (это правильная дробь) вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б);
г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
д) формируется искомое число: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.
Пример 1. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.
Имеем:
Таким образом, 0,847 = 0,11012.
В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.
Пример 2. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.
Имеем:
В данном примере также процедура перевода прервана.
Таким образом, 0,847 = 0,D8D16.
Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.
В этом случае рассчитывается полное значение числа по формуле, причем коэффициенты ai принимают десятичное значение в соответствии с таблицей.
Пример 3. Выполнить перевод из двоичной системы счисления в десятичную числа 0,11012.
Имеем:
0,11012 = 1*2-1 + 1*2-2 + 0*2-3 +1*2-4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.
Расхождение полученного результата с исходным числом (см. пример 1) вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,11012 = 0,8125.
Пример 4. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16.
Имеем:
0,D8D16 = 13*16-1 + 8*16-2 + 13*16-3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.
Расхождение полученного результата с исходным числом (см. пример 2) вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.
Таким образом, 0,D8D16 = 0,84692.
Перевод из двоичной системы счисления в шестнадцатеричную:
а) исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;
б) каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с таблицей.
Пример 5. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,11012.
Имеем:
В соответствии с таблицей 11012 = D16. Тогда 0,11012 = 0,D16.
Пример 6. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль:
В соответствии с таблицей 00102 = 102 = 216 и 10102 = A16.
Тогда 0,00101012 = 0,2A16.
Перевод из шестнадцатеричной системы счисления в двоичную:
а) каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей;
б) незначащие нули отбрасываются.
Пример 7. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16.
По таблице имеем 216 = 00102 и А16 = 10102.
Тогда 0,2А16 = 0,001010102.
Отбросим в результате незначащий ноль и получим окончательный ответ: 0,2А16 = 0,00101012
Правило перевода дробных чисел (неправильных дробей)
Напомним, что неправильная дробь имеет ненулевую дробную часть, т.е. у нее числитель больше знаменателя.
Результат перевода неправильной дроби всегда неправильная дробь.
При переводе отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются.
Пример 1. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.
Представим исходное число как сумму целого числа и правильной дроби:
19,847 = 19 + 0,847.
Как следует из примера 2 раздела Перевод целых чисел 19 = 1316, а в соответствии с примером 2 раздела Перевод правильных дробей 0,847 = 0,D8D16.
Тогда имеем:
19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.
Таким образом, 19,847 = 13,D8D16.
Дата добавления: 2018-04-04; просмотров: 490; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!