Системы счисления
.pdfТЕМА: Позиционные системы счисления. Представление чисел в виде полинома. Преобразование чисел из одной системы счисления в другую
Способы представления данных в ЭВМ
ЭВМ позволяет осуществлять сложнейшие расчеты, используя для всех операций простой элемент информации – бит (Binary digit –двоичная цифра). Данный элемент принимает только два значения: 1 или 0 (включен или выключен). Набор из восьми бит называется байтом, где старшинство разрядов определяется справа налево, т.е. крайний правый разряд - самый младший, а крайний левый - самый старший. Для обработки данных в ЭВМ используются различные системы счисления.
Под системой счисления понимают способ представления любого числа
спомощью некоторого набора цифр, который является базовым.
ВЭВМ чаще всего используют следующие системы счисления:
-десятичная,
-двоичная,
-восьмеричная,
-шестнадцатеричная.
Вдесятичной системе счисления для представления чисел используют набор из десяти цифр: 0,1,2,3,4,5,6,7,8,9, в двоичной – из двух цифр: 0,1, в восьмеричной – из восьми цифр: 0,1,2,3,4,5,6,7. В шестнадцатеричной системе счисления, кроме цифр используются также символы A,B,C,D,E,F, т.е.
базовый набор следующий: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Представление некоторых чисел в разных системах счисления см. в таблице 6.
Представление чисел в виде полинома
Количество d различных цифр и символов, употребляемых в системе счисления, называется ее основанием. Системы счисления подразделяются на позиционные и непозиционные.
Система счисления называется позиционной, значение цифры зависит от ее месторасположения в последовательности цифр, изображающих число. В непозиционной системе счисления значение цифры не зависит от ее положения в записи. Например, десятичная система счисления является позиционной, а римская – непозиционной.
Пример: у числа XXX (тридцать) цифра X в любом месте означает число десять. Рассмотрим теперь число 222 в десятичной системе счисления. Здесь цифра 2 повторяется три раза, но при этом одна из них означает число еди-
2
ниц, другая – число десятков, а третья – число сотен. Таким образом число 222 представляет собой сокращенную запись выражения 2 102+2 101+2 100.
Таблица 6 Сравнительная таблица чисел в разных системах счисления
Десятичное |
Двоичное |
Восьмеричное |
Шестнадцати- |
число |
число |
число |
ричное число |
0 |
0000 |
0 |
0 |
1 |
0001 |
1 |
1 |
2 |
0010 |
2 |
2 |
3 |
0011 |
3 |
3 |
4 |
0100 |
4 |
4 |
5 |
0101 |
5 |
5 |
6 |
0110 |
6 |
6 |
7 |
0111 |
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 |
В случае позиционной системы счисления с основанием d любое число x может быть представлено в виде полинома:
x=An d n + An-1 dn 1 +...+ A1 d1 + A0 d0 ,
где Ai– любые базовые цифры.
Так при использовании двоичной системы счисления (d=2) число x будет представлено так:
x=An2n+ An-12n-1+...+ A121+ A020.
Например, двоичное число 1110 эквивалентно 14 в десятичной системе счисления:
3 |
2 |
1 |
0 |
– Показатель степени |
1 |
1 |
1 |
0 |
–Число |
1 23+1 22+1 21+1 20 =14
Таким образом, 11102 =1410.
3
В дальнейшем для обозначения системы счисления будут использоваться записи:
436910 – десятичное число;
10001000100012 – двоичное число;
111116 – шестнадцатеричное число;
Любое число, заданное в восьмеричной системе счисления, может быть представлено в виде полинома с основанием 8:
x=An 8n+ An-1 8n-1+...+ A1 81+ A0 80.
Так, например, число 1238 может быть записано в десятичной форме
1238=8310
2 |
1 |
0 |
– Показатель степени |
1 |
2 |
3 |
–Число |
1 82+1 81+1 80=83.
Аналогичным образом число в шестнадцатеричной системе счисления может быть представлено в виде полинома с основанием 16. Например, число ABBA16 в десятичной системе будет иметь вид:
3 |
2 |
1 |
0 |
– Показатель степени |
A |
B |
B |
A |
–Число |
10 163+11 162+11 161+10 160 = 40960+2816+176+10 = 43962 ABBA16=4396210.
Преобразование чисел из одной системы счисления в другую
Использование в ЭВМ двоичной системы счисления получило широкое распространение, т.к. для представления данных могут использоваться простые электронные элементы, имеющие всего два устойчивых состояния. Однако числа, представленные в двоичной форме, имеют большую длину и поэтому трудны для восприятия. Для изображения цепочек из нулей и единиц часто используют восьмеричное и шестнадцатеричное представление. Рассмотрим способы преобразования целых чисел из одной системы счисления в другую.
Преобразование чисел из двоичной системы в шестнадцатеричную
(восьмеричную). Для преобразования чисел поступают следующим образом: разделяют двоичное число на группы по 4 (или 3) бита в каждой, дополняя
4
при необходимости нулями крайнюю левую группу. Каждую группу заменяют соответствующей эквивалентной шестнадцатеричной (восьмеричной) цифрой (см. таблицу 6).
Пример:
Двоичное число |
1010 1101 1010 |
|
1101 1110 1011 1010 |
|||||||
|
|
|
|
|||||||
Шестнадцатеричное |
A |
D |
|
A |
|
D |
E |
B |
A |
|
число |
|
|
|
|
|
|
|
|
|
|
Двоичное число |
101 011 011010 |
001 101 111 010 |
111 |
010 |
||||||
|
|
|
||||||||
Восьмеричное |
5 |
3 |
3 |
2 |
1 |
5 |
7 |
2 |
7 |
2 |
Преобразование чисел из шестнадцатеричной (восьмеричной) систе-
мы в двоичную. В этом случае каждая шестнадцатеричная (восьмеричная) цифра заменяется группой из четырех (трех) цифр.
Пример:
Шестнадцатеричное |
A |
D |
|
A |
|
D |
E |
B |
A |
|
число |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Двоичное число |
1010 1101 1010 |
1101 1110 1011 1010 |
||||||||
Восьмеричное |
|
|
|
|
|
|
|
|
|
|
число |
5 |
3 |
3 |
2 |
1 |
5 |
7 |
2 |
7 |
2 |
Двоичное число |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
101 |
011 |
011 010 |
001 |
101 |
111 |
010 |
111 |
010 |
Преобразование числа из системы счисления с основанием p в деся-
тичную систему сводится к вычислению соответствующего полинома (см. выше). Для этого представляют число в виде суммы степеней p, пользуясь ее позиционной записью, и подсчитывают значение суммы.
Примеры: 57618=583+782+68+1=305710 AF16=1016+15=17510
Рассмотрим теперь правила перевода чисел из десятичной системы счисления в систему счисления с основанием p.
Преобразование числа из десятичной системы счисления в двоичную
осуществляется путем последовательного деления числа на 2 нацело и записи остатков от деления, начиная с младшего. Рассмотрим это на примере. Перевести число 14010 в двоичное число.
|
|
|
|
140 |
|
2 |
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
140 |
|
70 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
0 |
|
|
70 |
|
|
35 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
34 |
|
|
17 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
16 |
|
8 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
8 |
|
|
4 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
4 |
|
|
2 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
2 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
направление чтения |
|
|
|
|
|
|||||||||||
Таким образом, получается 14010=100011002. |
|
|
|
|
|
|
||||||||||||||||||||||
Проверка: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
6 |
5 |
4 |
|
3 |
2 |
|
1 |
0 |
– Показатель степени |
||||||||||||||||||
1 |
0 |
0 |
0 |
1 |
1 |
|
0 |
1 |
–Число |
|
|
|
|
|
|
|
|
|
||||||||||
127+123+122=128+8+4=140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
Аналогичным образом производится |
преобразование чисел из десятич- |
ной системы в шестнадцатеричную и восьмеричную системы счисления.
Пример: Перевести 203610 в восьмеричную систему.
2036 |
8 |
|
|
|
|
|
|
|
|||
2032 |
254 |
|
8 |
|
|
|
|
||||
|
4 |
|
248 |
|
31 |
|
|
8 |
|
||
|
|
|
|
6 |
|
|
24 |
|
|
3 |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
направление чтения
203610=37648.
Пример: Перевести число 306010 в шестнадцатеричную систему счисления.
3060 |
|
16 |
|
|
|
|
||
3056 |
|
191 |
|
16 |
|
|||
|
4 |
|
|
176 |
|
11 |
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
направление чтения
6
1110=B16; 1510=F16. Получается 306010=BF416
Правила перевода правильных дробей.
Результатом является всегда правильная дробь.
Из десятичной системы счисления - в двоичную и шестнадцатеричную:
1.исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
2.в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается - она является старшей цифрой получаемой дроби;
3.оставшаяся дробная часть вновь умножается на нужное основание системы. процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
4.формируется результат: последовательно отброшенные в шаге 2) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.
Пример Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой. Имеем:
Пример. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.
7
Из двоичной и шестнадцатеричной систем счисления - в десятич-
ную. В этом случае рассчитывается полное значение числа по формуле, причем коэффициенты ai принимают десятичное значение в соответствии с таблицей.
Пример. Выполнить перевод из двоичной системы счисления в десятич-
ную числа 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.
Расхождение полученного результата с исходным для получения двоичной дроби числом вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,11012 = 0,8125.
Пример. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16. Имеем:
0,D8D16 = 13*16-1 + 8*16-2 + 13*16-3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.
Из двоичной системы счисления в шестнадцатеричную:
1.исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;
2.каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с таблицей.
Пример. Выполнить перевод из двоичной системы счисления в шестна-
дцатеричную числа 0,11012. Имеем: 0,11012 = 0,11012 В соответствии с таблицей 11012 = D16. Тогда имеем 0,11012 = 0,D16.
8
Пример. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль: 0,00101012 = 0,001010102. В соответствии с таблицей
00102 = 102 = 216 и 10102 = A16. Тогда имеем 0,00101012 = 0,2A16.
Из шестнадцатеричной системы счисления в двоичную:
1.каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей;
2.незначащие нули отбрасываются.
Пример. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16. По таблице имеем 216 = 00102 и А16 = 10102.
Тогда 0,2А16 = 0,001010102. Отбросим в результате незначащий ноль и получим окончательный результат: 0,2А16 = 0,00101012.
Правило перевода дробных чисел
Отдельно переводится целая часть числа, отдельно - дробная. Результаты складываются.
Пример. Выполнить перевод из десятичной системы счисления в шест-
надцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой. Представим исходное число как сумму целого числа и пра-
вильной дроби: 19,847 = 19 + 0,847.
Как следует из примера 3.2, 19 = 1316; а в соответствии с примером 3.9 0,847 = 0,D8D16. Тогда имеем: 19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.
Таким образом, 19,847 = 13,D8D16.