Рассмотрим более подробно формы представления чисел в повседневной жизни и в компьютере.
Под системой счисления понимается способ представления любого числа с помощью некоторого алфавита символов, называемых цифрами.
Система счисления называется позиционной, если одна и та же цифра имеет различное значение, определяемое позицией цифры в последовательности цифр, изображающей число (примером непозиционной системы является римская система счисления).
Количество различных цифр в алфавите позиционной системы называется основанием S этой системы. Используемая в повседневной жизни система счисления имеет десять различных цифр (0,1,2,3,4,5,6,7,8,9) и поэтому называется десятичной системой счисления.
Любое число N в позиционной системе счисления может быть представлено суммой произведений целых однозначных коэффициентов ai, взятых из алфавита системы на последовательные целые степени основания S:
(1.1.1)
Сокращенная запись числа Ns имеет вид:
В этой последовательности запятая отделяет целую часть числа от дробной части. Запятая опускается, если нет отрицательных степеней. Позиции цифр ai, отсчитываемые от запятой, называются разрядами. В позиционной системе счисления значение каждого разряда больше значения соседнего справа разряда в число раз, равное основанию S системы.
|
|
В компьютерах применяются следующие позиционные системы счисления: десятичная, двоичная, восьмеричная и шестнадцатеричная.
Алфавит десятичной системы счисления состоит, как уже указывалось, из десяти различных цифр: 0, 1, 2,... 9. В этой системе «вес» каждого разряда в 10 раз больше «веса» предыдущего. Например, в записи 1987 цифра 1 означает число тысяч, цифра 9 – число сотен, цифра 8 – число десятков и цифра 7 – число единиц.
Всякое число в десятичной системе счисления можно представить, в соответствие с формулой 1.1.1, суммой различных целых степеней десяти (S = 10) с соответствующими коэффициентами ai (0, 1, 2,... 9):
где
– количество единиц, десятков, сотен и т. д.;
– количество десятых, сотых, тысячных и т. д. долей единицы.
Иррациональные числа, например, число p, а также некоторые дроби, например, 1/3, не могут быть точно представлены с помощью конечной последовательности цифр. Как уже говорилось, в этом случае берется их приближение с заданной точностью.
Выбор той или иной системы счисления для представления чисел является произвольным. Так, выбор десятичной системы объясняется тем, что у нас на руках 10 пальцев. Однако разные народы в разные периоды времени использовали и другие системы счисления. Так, в древнем Вавилоне, наряду с десятичной системой счисления широко использовалась и шестидесятеричная система счисления. Следы шестидесятеричных дробей сохраняются и поныне в делении углового градуса, а также часа, на 60 минут и минуты на 60 секунд.
|
|
Ясно, что не существует максимального основания системы счисления, т.е. основание системы счисления может быть сколь угодно велико. В то же время существует минимальное основание системы счисления, равное 2. Эта система счисления называется двоичной системой счисления, в которой только две цифры – 0 и 1.
Любое действительное число в двоичной системе счисления представляется в виде суммы целых степеней основания S = 2, умноженных на соответствующие коэффициенты (0 или 1). Например, двоичное число 11011,012 представляется следующим образом:
11011,012 = 1×24 + 1×23 + 0×22 + 1×21 + 1×20 + 0×2-1 + 1×2-2 =
= 16 + 8 + 2 + 1 + 0,25 = 27,2510.
Для физического представления (изображения) чисел необходимы элементы, способные находиться в одном из нескольких устойчивых состояний. Число этих состояний должно быть равно основанию принятой системы счисления. Тогда каждое состояние будет представлять соответствующую цифру из алфавита данной системы счисления. Наиболее простыми с точки зрения технической реализации являются так называемые двухпозиционные элементы, способные находиться в одном из двух устойчивых состояний. Примерами таких двухпозиционных элементов могут служить:
· электромагнитное реле (состояния: замкнуто или разомкнуто);
· ферромагнитная поверхность (состояния: намагничена или размагничена);
· магнитный сердечник (состояния: намагничен в одном направлении или в противоположном);
· транзистор (состояния: проводит ток или не проводит тока).
Одно из этих устойчивых состояний может представлять цифру 0, а другое – цифру 1.
Именно простота и обеспечила наибольшее распространение в компьютерах двоичной системы счисления, основание которой S = 2; в ней используются лишь две цифры: 0 и 1.
Двоичное представление числа, по сравнению с десятичным представлением, требует большего числа разрядов (для многоразрядного числа примерно в 3,3 раза). Тем не менее, благодаря простоте, быстродействию и дешевизне технической реализации двухпозиционных элементов двоичная система счисления является в настоящее время основной системой, применяемой в компьютерах для представления информации, а также для выполнения арифметических и логических операций.
С помощью соответствующих программ десятичные числа при вводе в компьютер преобразуются в двоичные числа, а при выводе производится обратное преобразование. Однако при программировании и отладке программ часто приходится иметь дело с двоичными кодами команд программы, адресов и данных. Как уже говорилось, двоичные числа являются длинными и, кроме того, трудными для восприятия. Поэтому для сокращенной и удобной записи двоичных чисел часто используются восьмеричная и шестнадцатеричная системы счисления.
В восьмеричной системе счисления используются восемь цифр – от 0 до 7, а любое число представляется суммой целых степеней основания S = 8, умноженных на соответствующие коэффициенты ai (0,1,...,7). Например, число 21510 записывается в восьмеричной системе счисления следующим образом:
21510 = 3×82 + 2×81 + 7×80 = 3278.
В шестнадцатеричной системе счисления алфавит цифровых знаков состоит из 16 символов, причем в качестве первых десяти символов используются арабские цифры от 0 до 9, а дополнительно к ним применяются буквенные символы: 10 – A(a), 11 – В(b), 12 – С(c), 13 – D(d), 14 – Е(e), 15 – F(f)
Число 21510 в шестнадцатеричной системе счисления запишется следующим образом:
21510 = D×161 + 7×160 = D716.
Существуют различные способы перевода чисел из одной системы счисления в другую. Рассмотрим общие правила перевода из одной позиционной системы счисления в другую.
|
|
Перевод целого числа из десятичной системы счисления в систему с основанием Sосуществляется последовательным делением его на основание S новой системы счисления до тех пор, пока не получится частное, меньшее S. Число в новой системе запишется в виде остатков деления, начиная с последнего.
Перевод правильной дроби (меньшей 1) из десятичной системы счисления в систему с основанием Sосуществляется последовательным умножением ее на основание S, при этом перемножаются только дробные части. Дробь в новой системе счисления записывается в виде целых частей получающихся произведений, начиная с первого.
Для перевода неправильных дробей (больших 1) необходимо выполнить отдельно перевод целой и дробной частей.
При переводе деление и умножение выполняются в десятичной системе счисления.
Для перевода чисел из системы счисления S в десятичную систему счисления удобнее всего воспользоваться формулой 1.1.1.
Так как основания восьмеричной и шестнадцатеричной систем счисления соответствуют целым степеням числа 2 (8 = 23; 16 = 24), для них исключительно просты правила перевода в двоичную систему счисления, и наоборот. Каждые три цифры двоичного числа преобразуются в одну цифру восьмеричного числа справа налево (если длина двоичного числа не кратна трем, впереди добавляется соответствующее число нулей). При обратном преобразовании каждая цифра восьмеричного числа преобразуется в три двоичные цифры.
Аналогично выполняются взаимные преобразования шестнадцатеричных и двоичных чисел, за исключением того, что число двоичных цифр равно четырем.
Примеры перевода чисел из одной системы счисления в другую.
1. Перевод числа 37710 в шестнадцатеричную систему счисления:
377:16 = 23 (остаток 9); 23:16 = 1 (остаток 7); 1:16 = 0 (остаток 1).
Результат: 17916.
2. Перевод дроби 0,687510 в восьмеричную систему счисления:
0,6875×8 = 5,5000 (5); 0,5000×8 = 4,0000 (4).
Результат: 0,548.
3. Перевод числа FCA116 в десятичную систему счисления:
FCA116 = 15×163 + 12×162 + 10×161 + 1×160 =
|
|
= 61440 + 3072 + 160 + 1 = 6467310.
4. Перевод числа 11111112 в шестнадцатеричную систему счисления:
11111112 = 0111 1111 = 7F16.
5. Перевод числа 9C816 в двоичную систему счисления:
6C816 = 0110 1100 1000 = 110110010002.
Арифметические операции в системе счисления S выполняются так же, как и в десятичной системе, но необходимо учитывать, что при сложении и умножении единица переносится в старший разряд, когда сумма или произведение чисел больше основания S, а при вычитании в старшем разряде занимается количество единиц, также равное основанию S.
Примеры арифметических операций над шестнадцатеричными цифрами.
1. Сложение шестнадцатеричных чисел:
12A16 + C4816 = D7216;
A16 + 816 = 1216; (перенос 1 в старший разряд);
216 + 416 + 1(из младшего разряда) = 716;
116 + C16 = D16;
2. Вычитание шестнадцатеричных чисел:
14216 - С816 = 7A16;
216 + 1016 (заем из старшего разряда) - 816 = A16;
416 - 116(занято в младший разряд) +
+ 1016 (заем из старшего разряда) - С16 = 716.