Системы счисления и способы перевода чисел из одной системы в другую.
Системой счисления называют систему приемов и правил, позволяющих устанавливать взаимно-однозначное соответствие между любым числом и его представлением в виде совокупности конечного числа символов. Множество символов, используемых для такого представления, называют цифрами.
В зависимости от способа изображения чисел с помощью цифр системы счисления делятся на “позиционные” и “непозиционные”.
В “непозиционных” системах любое число определяется как некоторая функция от численных значений совокупности цифр, представляющих это число. Цифры в непозиционных системах счисления соответствуют некоторым фиксированным числам. Пример непозиционной системы - римская система счисления. В вычислительной технике непозиционные системы не применяются.
Систему счисления называют “позиционной”, если одна и та же цифра может принимать различные численные значения в зависимости от номера разряда этой цифры в совокупности цифр, представляющих заданное число. Пример такой системы - арабская десятичная система счисления.
В позиционной системе счисления любое число записывается в виде последовательности цифр:
A = 7+ 0 a 4m-1 0 a 4m-2 0 ... a 4k 0 ... a 40 0 , a 4-1 0 ... a 4-l 0 (I)
Позиции, пронумерованные индексами k (-l < k < m-1) называются разрядами числа. Сумма m+l соответствует количеству разрядов числа (m - число разрядов целой части числа, l - дробной части).
Каждая цифра a 4k 0 в записываемой последовательности может принимать одно из N возможных значений. Количество различных цифр (N), используемых для изображения чисел в позиционной системе счисления, называется основанием системы счисления. Основание N указывает, во сколько раз единица k+1 -го разряда больше единицы k -го разряда, а цифра a 4k 0 соответствует количеству единиц k –го разряда, содержащихся в числе.
Таким образом, число может быть представлено в виде суммы:
(A) 4N 0 = 7+ 0(a 4m-1 0N 5m-1 0 + a 4m-2 0N 5m-2 0 +...+ a 40 0 + a 4-1 0N 5-1 0 +...+ a 4-l 0N 5-l 0) (II)
Основание позиционной системы счисления определяет ее название. В вычислительной технике применяются двоичная, восьмеричная, десятичная и шестнадцатеричная системы. В дальнейшем, чтобы явно указать используемую систему счисления, будем заключать число в скобки и в индексе указывать основание системы счисления.
В двоичной системе счисления используются только две цифры: 0 и 1. Любое двоичное число может быть представлено в следующей форме:
(A) 42 0 = 7+ 0(a 4m-1 02 5m-1 0 + a 4m-2 02 5m-2 0 + ... + a 40 0 + a 4-1 02 5-1 0 + ... + a 4-l 02 5-l 0)
Например, двоичное число (10101,101) 42 0 = 1*2 54 0+0*2 53 0+1*2 52 0+0*2+1+1*2 5-1 0+0*2 5-2 0+1*2 5-3 0 = (21,625) 410
В восьмеричной системе счисления для записи чисел используется восемь цифр (0,1,2,3,4,5,6,7), а в шестнадцатеричной - шестнадцать (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
Таблица для перевода чисел из одной системы счисления в другую.
Двоичные числа ¦ Восьмеричные числа ¦ Десятичные числа ¦ Шестнадцатеричные числа
0,0001 ¦ 0,04 ¦ 0,0625 ¦ 0,1
0,001 ¦ 0,1 ¦ 0,125 ¦ 0,2
0,01 ¦ 0,2 ¦ 0,25 ¦ 0,4
0,1 ¦ 0,4 ¦ 0,5 ¦ 0.8
1 ¦ 1 ¦ 1 ¦ 1
10 ¦ 2 ¦ 2 ¦ 2
11 ¦ 3 ¦ 3 ¦ 3
100 ¦ 4 ¦ 4 ¦ 4
101 ¦ 5 ¦ 5 ¦ 5
110 ¦ 6 ¦ 6 ¦ 6
111 ¦ 7 ¦ 7 ¦ 7
1000 ¦ 10 ¦ 8 ¦ 8
1001 ¦ 11 ¦ 9 ¦ 9
1010 ¦ 12 ¦ 10 ¦ A
1011 ¦ 13 ¦ 11 ¦ B
1100 ¦ 14 ¦ 12 ¦ C
1101 ¦ 15 ¦ 13 ¦ D
1110 ¦ 16 ¦ 14 ¦ E
1111 ¦ 17 ¦ 15 ¦ F
10000 ¦ 20 ¦ 16 ¦ 10
Для хранения и обработки данных в ЭВМ используется двоичная система, так как она требует наименьшего количества аппаратуры по сравнению с другими системами. Все остальные системы счисления применяются только для удобства пользователей.
В двоичной системе очень просто выполняются арифметические и логические операции над числами.
Таблица сложения:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Таблица умножения:
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
Многоразрядные числа складываются, вычитаются, умножаются и делятся по тем же правилам, что и в десятичной системе счисления.
Перевод числа из одной системы в другую выполняется по универсальному алгоритму, заключающемуся в последовательном делении “целой” части числа и образующихся “целых частных” на основание новой системы счисления, записанное в исходной системе счисления, и в последующем умножении дробной части и дробных частей получающихся произведений на то же основание, записанное в исходной системе счисления.
При переводе “целой” части получающиеся в процессе последовательного деления остатки представляют цифры целой части числа в новой системе счисления, записанные цифрами исходной системы счисления. Последний остаток является “старшей” цифрой переведенного числа.
При переводе “дробной” части числа “целые” части чисел, получающихся при умножении, не участвуют в последующих умножениях. Они представляют собой цифры дробной части исходного числа в новой системе счисления, изображенные числами старой системы. Значение первой целой части является первой цифрой после запятой переведенного числа.
Использованы материалы [9] , [10].
Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.
Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.
Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно Р, то система счисления называется Р-ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления.
Запись произвольного числа х в Р-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена:
х = аnРn + an-1Рn-1 + ... + a1Р1 + a0Р0 + a-1P-1 + ... + а-mР-m.
Арифметические действия над числами в любой позиционной системе счисления производятся по тем же правилам, что и в десятичной системе, так как все они основываются на правилах выполнения действий над соответствующими многочленами. При этом нужно только пользоваться теми таблицами сложения и умножения, которые соответствуют данному основанию Р системы счисления.
При переводе чисел из десятичной системы счисления в систему с основанием Р > 1 обычно используют следующий алгоритм:
- если переводится целая часть числа, то она делится на Р, после чего запоминается остаток от деления. Полученное частное вновь делится на Р, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остатки от деления на Р выписываются в порядке, обратном их получению;
- если переводится дробная часть числа, то она умножается на Р, после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на Р и т.д. Процедура продолжается до тех пор, пока дробная часть не станет равной нулю. Целые части выписываются после двоичной запятой в порядке их получения. Результатом может быть либо конечная, либо периодическая двоичная дробь. Поэтому, когда дробь является периодической, приходится обрывать умножение на каком-либо шаге и довольствоваться приближенной записью исходного числа в системе с основанием Р.
Задача 1. Перевести данное число из десятичной системы счисления в двоичную:
а) 464(10);
б) 380,1875(10);
в) 115,94(10) (получить пять знаков после запятой в двоичном представлении).
Решение
Для перевода чисел в двоичную систему счисления целой части чисел используется, согласно описанному выше алгоритму, их последовательное деление на основание системы счисления 2, остатки от деления выписываются слева; дробная часть умножается последовательно на 2, целые части выписываются справа, после чего отбрасываются. При записи ответа в целой части выписываются остатки от деления в порядке, обратном их получению, в дробной части - целые части от умножения в порядке их получения.
464(10) = 111010000(2);
380,1875(10) = 101111100,0011(2);
115,94(10) = 1110011,11110(2)
(в настоящем случае было получено шесть знаков после запятой, после чего результат был округлен).
Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель вышеуказанной степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). Итак, в целой части будем производить группировку справа налево, в дробной - слева направо. Если в последней группе недостает цифр, дописываем нули: в целой части - слева, в дробной - справа. Затем каждая группа заменяется соответствующей цифрой новой системы. Соответствия приведены в таблицах.
Задача 2. Перевести из двоичной системы в шестнадиатеричную число 1111010101,11(2).
Решение: 0011 1101 0101,1100(2) = 3D5,C(16).
При переводе чисел из системы счисления с основанием Р в десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и в дробной части, начиная с разряда сразу после запятой слева направо (начальный номер -1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степени, равной номеру разряда. Это и есть представление исходного числа в десятичной системе счисления.
Задача 3. Перевести данное число в десятичную систему счисления.
-
1000001(2).
1000001(2) = 1*26 + 0*25 + 0*24 + 0*23 + 0*22 + 0*21 + 1*20 = 64 + 1 = 65(10)
Замечание. Очевидно, что если в каком-либо разряде стоит ноль, то соответствующее слагаемое можно опускать. -
1000011111,0101(2).
1000011111,0101(2) = 1*29 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 + 1*2-2 + 1*2-4 = 512 + 16 + 8 + 4 + 2 + 1 + 0,25 + 0,0625 = 543,3125(10).
-
1216,04(8).
1216,04(8) = 1*83 + 2*82 + 1*81 + 6*80 + 4*8-2 = 512 + 128 + 8 + 6 + 0,0625 = 654,0625(10).
-
29A,5(16).
29A,5(16) = 2*162 + 9*161 + 10*160 + 5*16-1 = 512 + 144 + 10 + 0,3125 = 656,3125(10)