Связь двоичной, восьмеричной и шестнадцатеричной систем счисления
ПРЕДСТАВЛЕНИЕ ЦИФРОВЫХ ДАННЫ
В ЦВМ
Учебно-практическое пособие
Санкт-Петербург
С о с т а в и т е л и: к.т.н., доцент А.А Ключарёв.
к.т.н., доцент О.В Мишура.
старший преподаватель С.Г Марковский.
Р е ц е н з е н т: кафедра менеджмента науки и образования СПб.ГУАП ;
к.т.н., доцент А.Г.Степанов
В пособии рассматриваются способы представления информации в цифровых вычислительных машинах, позиционные системы, основы машинной арифметики. Изложение материала сопровождается примерами. Включённые в пособие методические материалы по выполнению соответствующей лабораторной работы и пример её выполнения позволяют студенту самостоятельно изучить соответствующий раздел курса.
Пособие рекомендуется студентам специальности 2204 “Программное обеспечение вычислительной техники и автоматизированных систем” при изучении курса «Информатика», студентам специальности 0611 «Менеджмент» и направления 5515 при изучении курса «Электронно-вычислительные машины и вычислительные сети»
Подготовлено к публикации кафедрами «Программного обеспечения вычислительных систем» и «Вычислительных машин и комплексов.»
Позиционные системы счисления
Выполнение любых вычислений базируется на определенной форме представления чисел. Это определяется принятой системой счисления - совокупностью символов и правил для представления чисел. Символы называются цифрами данной системы счисления. Системы счисления могут быть позиционными и непозиционными.
Непозиционной системой называется такая, в которой значение символа не зависит от его места расположения в числе. Для образования числа в непозиционной системе счисления используются операции арифметического сложения и вычитания. Примером непозиционной системы счисления является римская:
XVI=X+V+I=10+5+1=1610
IX=X-I=10-1=910
В позиционной системе счисления значение каждого символа-цифры зависит от его места расположения в числе. Справедливо следующее представление числа в позиционной системе счисления:
x(q) = a n-1 q n-1 + a n-2 q n-2+ ... +a 1q1 + a0q0 + a-1q-1 + ...+amqm
где:
x(q) - число в системе счисления с основанием q;
a i - цифра i-ого разряда в числе;
n - количество целых разрядов числа;
m - количество дробных разрядов числа.
Под основанием системы счисления q, с одной стороны, понимают количество различных цифр, ее образующее, а с другой стороны - число, показывающее во сколько раз вес цифры данного разряда меньше веса соседнего старшего разряда.
Очевидно, что используемая система счисления определяет набор правил (алгоритмов) выполнения операций над числами. Поэтому важное значение имеет правильное представление чисел и преобразование чисел в различных системах счисления.
Наибольшее распространение в вычислительной технике имеют системы счисления с основаниями 2,8,16 - двоичная, восьмеричная, шестнадцатеричная.
Перевод чисел из одной системы счисления в другую.
Здесь различают три ситуации при переводе чисел:
- перевод числа из десятичной системы в систему с любым основанием;
- перевод числа из системы с любым основанием в десятичную;
- перевод числа из системы с основанием q1 в систему с основанием q2.
?
?
Правила, используемые для перевода целых и дробных чисел различны.
Для перевода целого числа из десятичной системы счисления в систему с основанием q, число нужно последовательно делить на основание q до тех пор, пока не будет получена целая часть частного, равная 0, то есть будет получен остаток от деления, меньший q. Число в системе счисления с основанием q записывается в виде упорядоченной последовательности остатков от деления в порядке, обратном получению остатков, то есть старшей цифрой числа будет последний остаток.
При переводе числа в шестнадцатеричную систему счисления необходимо помнить, что шестнадцатеричные числа представляются символами 1, 2, ..., 8, 9, A(10), B(11), C(12), D(13), E(14), F(15).
Для перевода правильной дроби из десятичной системы счисления в систему с основанием q число нужно последовательно умножать на основание q (причем умножению подвергаются только дробные части) до тех пор, пока не будет обеспечена заданная точность представления числа. Дробь в системе счисления с основанием q записывается в виде упорядоченной последовательности целых частей произведений в порядке их получения. Если требуемая точность перевода q, то число указанных последовательных произведений (то есть цифр в представлении дроби) равно k+1. По (k+1)-ой цифре производится округление k-той цифры.
Пример : перевести число 9510 в следующие системы счисления:
а) двоичную:
1 | |||||||
направление записи числа | |||||||
Ответ:9510 = 10111112 |
б) восьмеричную :
Ответ:9510 = 1378 | |||
в) шестнадцатеричную:
F | |||
Ответ:9510 = 5F16 |
Если на некотором шаге получения произведений дробная часть числа становится равной 0, то процесс преобразования на этом заканчивается, так как все остальные цифры в представление дроби будут равны 0.
Пример: перевести число 0.95 в следующие системы счисления, с точностью представления 2, 8, 16, соответственно:
а) двоичную СС: б) восьмеричную СС: в) шестнадцатеричную СС:
F | ||||||||
Ответ: 0.9510 = 0.1111012 = 0.758 = 0.F316
При переводе неправильной дроби из десятичной системы счисления в систему с основанием q отдельно переводится целая и дробная части числа.
Пример: перевести число 123.58 в восьмеричную систему счисления.
123.5810 =12310 + 0.5810 = 1738 + 0.458 = 173.458
Для перевода числа из системы счисления с основанием q в десятичную пользуются формулой разложения в ряд (1). Выражение (1) справедливо как для целых, так и для дробных чисел.
Пример: представить числа: а)111011.011, б)154.31, в)А2В.3С в десятичной системе счисления.
111011.0112 = 1*25 +1*24 +1*23 +0*22 +1*21 +1*20 +0*2-1 +1*2-2 +1*2-3 =
=32 +16+8+2+1+1/4+1/8=59.37510
154.318 = 1*82 +5*81 +4*80 +3*8-1 +1*8-2 = 64+ 40+ 4+ 3/8+ 1/64 =
=108.39062510
А2В.3С16 = А*162 +2*161 +В*160 +3*16-1 +С*16-2 = 3840+32+11+3/16+12/256 = 3883.23437510
При переводе чисел из системы счисления с основанием q1 в систему с основанием q2 выполняется промежуточное преобразование в десятичную систему.
Связь двоичной, восьмеричной и шестнадцатеричной систем счисления.
Восьмеричная и шестнадцатеричная системы счисления относятся к двоично-кодированным системам, основание которых представляют целые степени двойки: 23 - для восьмеричной и 24 - для шестнадцатеричной.
Каждая восьмеричная цифра представляется триадой двоичных цифр, а каждая шестнадцатеричная цифра - тетрадой двоичных цифр.
Перевод целых и дробных чисел из двоичной в восьмеричную и из двоичной в шестнадцатеричную системы счисления производится с учетом следующих таблиц:
Таблица 1
Восьмеричное число | Триада |
Таблица 2
Шестнадцатеричное число | Тетрада |
A | |
B | |
C | |
D | |
E | |
F |
Для перевода двоичного числа в восьмеричную (шестнадцатеричную) систему счисления число разбивается на триады (тетрады) двоичных цифр. Причем для целого числа триады (тетрады) находятся, начиная с младшего разряда, двигаясь влево к старшему разряду. Если старшая триада (тетрада) не получается из-за нехватки цифр, то слева к числу приписывается нужное количество нулей. Для дробного числа триады (тетрады) находятся, начиная со старшего разряда, двигаясь вправо к младшему. Если количество разрядов не кратно трём (четырем), то справа приписывается нужное количество нулей. Далее каждой триаде (тетраде) ставится в соответствие восьмеричная (шестнадцатеричная) цифра.
При обратном переводе вместо каждой восьмеричной (шестнадцатеричной) цифры записывается эквивалентная ей триада (тетрада) двоичных. Положение запятой между целой и дробной частями числа сохраняется. Нули слева от целой части и справа от дробной части опускаются.
Примеры:
а) | 1101110011.01101012 | = | 011. | = | 1563.3248 | |||||||||||||
б) | 2076.3058 = | 6 , | = | 10000111110,0110001012 | ||||||||||||||
110, | ||||||||||||||||||
в) | 11011011110100.10110011012= | 0100, | = | ||||||
F | B |
= 36F4.B3416
г) A2E.С1D16 = 101000101110.1100000111012