Системы счисления и способы перевода чисел из одной системы в другую.
Системой счисления называют систему приемов и правил, позволяющих устанавливать взаимно-однозначное соответствие между любым числом и его представлением в виде совокупности конечного числа символов. Множество символов, используемых для такого представления, называют цифрами.
В зависимости от способа изображения чисел с помощью цифр системы счисления делятся на позиционные и непозиционные.
В непозиционных системах любое число определяется как некоторая функция от численных значений совокупности цифр, представляющих это число. Цифры в непозиционных системах счисления соответствуют некоторым фиксированным числам. Пример непозиционной системы - римская система счисления. В вычислительной технике непозиционные системы не применяются.
Систему счисления называют позиционной, если одна и та же цифра может принимать различные численные значения в зависимости от номера разряда этой цифры в совокупности цифр, представляющих заданное число. Пример такой системы - арабская десятичная система счисления.
В позиционной системе счисления любое число записывается в виде последовательности цифр:
Позиции, пронумерованные индексами k (-l < k < m-1) называются разрядами числа. Сумма m+l соответствует количеству разрядов числа (m - число разрядов целой части числа, l - дробной части).
Каждая цифра a (k) в записываемой последовательности может принимать одно из N возможных значений. Количество различных цифр (N), используемых для изображения чисел в позиционной системе счисления, называется основанием системы счисления. Основание N указывает, во сколько раз единица k+1 -го разряда больше единицы k -го разряда, а цифра a(k) соответствует количеству единиц k -го разряда, содержащихся в числе.
Таким образом, число может быть представлено в виде суммы:
Основание позиционной системы счисления определяет ее название. В вычислительной технике применяются двоичная, восьмеричная, десятичная и шестнадцатеричная системы. В дальнейшем, чтобы явно указать используемую систему счисления, будем заключать число в скобки и в индексе указывать основание системы счисления.
В двоичной системе счисления используются только две цифры: 0 и 1. Любое двоичное число может быть представлено в следующей форме:
Например, двоичное число 10101,101 2= 1*2 4 +0*2 3 +1*2 2 +0*2+1+1*2 -1 +0*2 -2 +1*2 -3 =21,625 10
В восьмеричной системе счисления для записи чисел используется восемь цифр (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 0.001 0.1 0.125 0.2 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 Многоразрядные числа складываются, вычитаются, умножаются и делятся по тем же правилам, что и в десятичной системе счисления.
Перевод числа из одной системы в другую выполняется по универсальному алгоритму, заключающемуся в последовательном делении целой части числа и образующихся целых частных на основание новой системы счисления, записанное в исходной системе счисления, и в последующем умножении дробной части и дробных частей получающихся произведений на то же основание, записанное в исходной системе счисления.
При переводе целой части получающиеся в процессе последовательного деления остатки представляют цифры целой части числа в новой системе счисления, записанные цифрами исходной системы счисления. Последний остаток является старшей цифрой переведенного числа.
При переводе дробной части числа целые части чисел, получающихся при умножении, не участвуют в последующих умножениях. Они представляют собой цифры дробной части исходного числа в новой системе счисления, изображенные числами старой системы. Значение первой целой части является первой цифрой после запятой переве- денного числа. Пример перевода числа 30,6 из десятичной системы в двоичную:
Перевод целой части Перевод дробной части
Последовательное Остатки Целые части - Последовательное деление разряды пере- умножение веденной дроби
Если при переводе дробной части получается периодическая дробь, то производят округление, руководствуясь заданной точностью вычислений.
Пример перевода числа 111110,01 из двоичной системы в десятичную. Перевод целой части Перевод дробной части _111110|1010 0, 0100 1010 |110----¦ Х ----- | 1010 10110 | ----------------- 1010 | ¦------10, 1000 ----- | | Х 10-------¦| | 1010 || | ----------------- || |¦-----101, 0000 || || || || Результат: 62,25
-
1010 - основание десятичной системы счисления в двоичной записи.
-
десятичные эквиваленты разрядов искомого числа находим по таблице.
При переводе чисел из любой системы счисления в десятичную удобнее пользоваться непосредственно формулой ( II ): (775)8 = 7*8(2) + 7*8 + 5 = (509)10
Для осуществления автоматического перевода десятичных чисел в двоичную систему счисления необходимо вначале каким-то образом ввести их в машину, Для этой цели обычно используется двоично-десятичная запись чисел или представление этих чисел в кодах ASCII.
При двоично-десятичной записи каждая цифра десятичного числа заменяется четырехзначным двоичным числом (тетрадой):
(983,65)10 = (1001 1000 0011, 0110 0101)2-10
При записи чисел в кодах ASCII цифрам от 0 до 9 поставлены в соответствие восьмиразрядные двоичные коды от 00110000 до 00111001.
ЭВМ, предназначенные для обработки экономической информации, например IBM AT, позволяют производить арифметические операции в десятичной системе счисления над числами, представленными в двоично-десятичных кодах и кодах ASCII.
Шестнадцатеричная и восьмеричная системы счисления используются только программистами и операторами ЭВМ, так как представление чисел в этих системах более компактное, чем в двоичной, и перевод из этих систем в двоичную и обратно выполняется очень просто (основания этих систем представляют собой целую степень числа 2).
Для перевода восьмеричного числа в двоичное достаточно каждый восьмеричный разряд представить тремя двоичными (триадой), а для перевода шестнадцатеричного числа - четырьмя (тетрадой):