Операции в различных системах счисления теория. Арифметические операции в различных системах счисления двоичная. Некоторые системы счисления
Т.к. в двоичной системе счисления в записи чисел используются только 2 цифры – 0 и 1, значит при сложении 1 + 1 в младшем разряде записывается 0, а 1 переходит в старший разряд.
По аналогии с 10-сс: 9 + 1 (цифры десять нет в записи чисел), записывается 0 и 1 в старшем разряде, получается 10.
Примеры
1) Сложим в столбик 10110 2 и 111011 2 . Единицы сверху обозначают перенос из предыдущего разряда:
2) Выполнить сложение для следующих двоичных чисел:
3) Сложить числа:10000000100 2 + 111000010 2 и выполнить проверку
10000000100 2 + 111000010 2 = 10111000110 2 .
Выполним проверку результатов расчетов переводом в десятичную систему счисления. Для этого переведем каждое слагаемое и сумму в десятичную систему счисления, выполним сложение слагаемых в десятичной системе счисления. Результат должен совпасть с суммой.
10000000100 2 = 1 × 2 10 + 1 × 2 2 = 1024 + 4 = 1028 10
111000010 2 = 1× 2 8 + 1× 2 7 + 1× 2 6 + 1 × 2 1 = 256 + 128 + 64 + 2 = 450 10
10111000110 2 = 1 × 2 10 + 1 × 2 8 + 1 × 2 7 + 1 × 2 6 + 1 × 2 2 + 1 × 2 1 =
1024 + 256 + 128 + 64 + 4 + 2 =1478 10
1028 10 + 450 10 =1478 10 .
Результаты совпадают, следовательно, вычисления в двоичной системе счисления выполнены верно.
Восьмеричные числа
Таблица сложения восьмеричных чисел
+ | ||||||||
При вычислениях в восьмеричной системе нужно помнить, что максимальная цифра – это 7. Перенос при сложении возникает тогда, когда сумма в очередном разряде получается больше 7. Заем из старшего разряда равен 10 8 = 8, а все «промежуточные» разряды заполняются цифрой 7 – старшей цифрой системы счисления.
Пример
1) В примере запись 1⋅8 + 2 означает, что получилась сумма, большая 7, которая не помещается в один разряд. Единица идет в перенос, а двойка остается в этом разряде.
2) Выполнить сложение 223,2 8 + 427,54 8 и осуществить проверку полученного результата.
223,2 8 + 427,54 8 = 652,74 8 .
Выполним проверку результатов расчетов переводом в десятичную систему счисления:
223,2 8 = 2 × 8 2 + 2 × 8 1 + 3 × 8 0 + 2 × 8 -1 = 128 + 16 + 3 + 0,25 =
427,54 8 = 4 × 8 2 + 2 × 8 1 + 7 × 8 0 + 5 × 8 -1 + 4 × 8 -2 =
256 + 16 + 7 + 0,625 + 0,0625= 279,6875 10
652,74 8 = 6 × 8 2 + 5 × 8 1 + 2 × 8 0 + 7 × 8 -1 + 4 × 8 -2 =
384 + 40 + 2 + 0,875 + 0,0625 = 426,9375 10
147,25 10 + 279,6875 10 =426,9375 10
Результаты совпадают, следовательно, вычисления в восьмеричной системе счисления выполнены верно.
Шестнадцатеричные числа
Таблица сложения шестнадцатеричных чисел
+ | A | B | C | D | E | F | ||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | B | C | D | E | F | |||||||||||
A | A | B | C | D | E | F | ||||||||||
B | B | C | D | E | F | 1A | ||||||||||
C | C | D | E | F | 1A | 1B | ||||||||||
D | D | E | F | 1A | 1B | 1C | ||||||||||
E | E | F | 1A | 1B | 1C | 1D | ||||||||||
F | F | 1A | 1B | 1C | 1D | 1E |
При выполнении сложения нужно помнить, что в системе с основанием 16 перенос появляется тогда, когда сумма в очередном разряде превышает 15. Удобно сначала переписать исходные числа, заменив все буквы на их численные значения.
Примеры
2) Выполнить сложение 3B3,6 16 + 38B,4 16 и осуществить проверку
3B3,6 16 + 38B,4 16 = 73E,A 16 .
Выполним проверку:
3B3,6 16 = 3 × 16 2 + 11 × 16 1 + 3 × 16 0 + 6 × 16 -1 = 768 + 176 +
3 + 0,375 = 947,375 10
38B,4 16 = 3 × 16 2 + 8 × 16 1 + 11 × 16 0 + 4 × 16 -1 = 768 + 128 +
11 + 0,25 = 907,25 10
73E,A 16 = 7 × 8 2 + 3 × 8 1 + 14 × 8 0 + 10 × 8 -1 = = 1792 + 48 + 14 + 0,625 = 1854,625 10
947,375 10 + 907,25 10 = 1854,625 10 .
Результаты совпадают, следовательно, вычисления в шестнадцатеричной системе счисления выполнены верно.
Вычитание
Двоичные числа
Вычитание выполняется почти так же, как и в десятичной системе. Вот основные правила:
0 – 0 = 0, 1 – 0 = 1, 1 – 1 = 0, 10 2 – 1 = 1.
В последнем случае приходится брать заем из предыдущего разряда.
Вычитание производится по аналогии с десятичной системой счисления.
Чтобы понять принцип, временно вернемся к десятичной системе. Вычтем в столбик из числа 21 число 9:
Поскольку из 1 нельзя вычесть 9, нужно взять заем из предыдущего разряда, в котором стоит 2. В результате к младшему разряду добавляется 10, а в следующем 2 уменьшается до 1. Теперь можно выполнить вычитание: 1 + 10 – 9 = 2. В старшем разряде вычитаем из оставшейся единицы ноль:
Более сложный случай – заем из дальнего (не ближайшего) разряда. Вычтем 9 из 2001. В этом случае занять из ближайшего разряда не удается (там 0), поэтому берем заем из того разряда, где стоит цифра 2. Все промежуточные разряды в результате заполняются цифрой 9, это старшая цифра десятичной системы счисления:
В двоичной системе счисления, когда берется заем, в «рабочий» разряд добавляется уже не 10, а 102 = 2 (основание системы счисления), а все «промежуточные» разряды (между «рабочим» и тем, откуда берется заем) заполняются не девятками, а единицами (старшей цифрой системы счисления).
Примеры
Если требуется вычесть большее число из меньшего, вычитают меньшее из большего и ставят у результата знак «минус»:
3) 4)
Восьмеричные числа
1)
При вычитании «– 1» означает, что из этого разряда раньше был заем (его значение уменьшилось на 1), а «+ 8» – заем из следующего разряда.
2) Вычитание
Шестнадцатеричные числа
При вычитании заем из старшего разряда равен 10 16 = 16, а все «промежуточные» разряды заполняются цифрой F – старшей цифрой системы счисления.
Например,
1)
2)
Умножение
Двоичные числа
х | ||
Умножение и деление столбиком в двоичной системе выполняются практически так же, как и в десятичной системе (но с использованием правил двоичного сложения и вычитания).
Например,
1) 2)
Восьмеричные числа
Восьмеричная таблица умножения
´ | ||||||||
С помощью восьмеричной таблицы умножения пользуясь теми же правилами, которые применяются в десятичной системе счисления, производятся умножение и деление восьмеричных многоразрядных чисел.
Пример
Шестнадцатеричные числа
Таблица умножения
´ | A | B | C | D | E | F | ||||||||||
A | B | C | D | E | F | |||||||||||
A | C | E | 1A | 1C | 1E | |||||||||||
C | F | 1B | 1E | 2A | 2D | |||||||||||
C | 1C | 2C | 3C | |||||||||||||
A | F | 1E | 2D | 3C | 4B | |||||||||||
C | 1E | 2A | 3C | 4E | 5A | |||||||||||
E | 1C | 2A | 3F | 4D | 5B | |||||||||||
1B | 2D | 3F | 5A | 6C | 7E | |||||||||||
A | A | 1E | 3C | 5A | 6E | 8C | ||||||||||
B | B | 2C | 4D | 6E | 8F | 9A | A5 | |||||||||
C | C | 3C | 6C | 9C | A8 | B4 | ||||||||||
D | D | 1A | 4E | 5B | 8F | 9C | A9 | B6 | C3 | |||||||
E | E | 1C | 2A | 7E | 8C | 9A | A8 | B6 | C4 | D2 | ||||||
F | F | 1E | 2D | 3C | 4B | 5A | A5 | B4 | C3 | D2 | E1 |
Пример
Деление отдельно в десятичную систему, так как для чисел от 0 до 7 их восьмеричная запись совпадает с десятичной);
3) Складываем
Решение (через шестнадцатеричную систему):
1) (сначала перевели в двоичную систему, потом двоичную запись числа разбили на тетрады справа налево , каждую тетраду перевели в шестнадцатеричную систему; при этом тетрады можно переводить из двоичной системы в десятичную, а затем заменить все числа, большие 9, на буквы – A, B, C, D, E, F);
2) , никуда переводить не нужно;
3) складываем
4) переводим в шестнадцатеричную систему все ответы:
121 8 = 001 010 001 2 = 0101 0001 2 = 51 16 (перевели в двоичную систему по триадам, разбили на тетрады справа налево, каждую тетраду перевели отдельно в десятичную систему, все числа, большие 9, заменили на буквы – A, B, C, D, E, F).
171 2 = 001 111 001 2 = 0111 1001 2 = 79 16 ,
69 16 , переводить не нужно
1000001 2 = 0100 0001 2 = 41 16 .
Системы счисления.
Системой счисления называют совокупность символов (цифр) и правил их использования для представления чисел.
Существуют позиционные и непозиционные системы счисления.
В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.
В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая – 7 единиц, а третья – 7 десятых долей единицы.
Сама же запись числа 757,7 означает сокращенную запись выражения
700 + 50 + 7 + 0,7 = 7 10 2 + 5 10 1 + 7 10 0 + 7 10 -1 = 757,7.
Любая позиционная система счисления характеризуется своим основанием.
Основание позиционной системы счисления - это количество различных знаков или символов, используемых для изображения цифр в данной системе.
Возможно бесчисленное множество позиционных систем : двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения
a n-1 q n-1 + a n-2 q n-2 + ... + a 1 q 1 + a 0 q 0 + a -1 q -1 + ... + a - m q - m , где a i – цифры системы счисления; n и m – число целых и дробных разрядов, соответственно.
Например:
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2 , а именно :
двоичная (используются цифры 0, 1);
восьмеричная (используются цифры 0, 1, ..., 7);
шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел - от десяти до пятнадцати – в качестве цифр используются символы A, B, C, D, E, F).
Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел:
Из всех систем счисления особенно проста и поэтому интересна для технической реализации в компьютерах двоичная система счисления .
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (четверкой цифр).
Например:
Чтобы перевести число из двоичной системы в восьмеричную или шестнадцатеричную , его нужно разбить влево и вправо от запятой на триады (для восьмеричной) или тетрады (для шестнадцатеричной) и каждую такую группу заменить соответствующей восьмеричной (шестнадцатеричной) цифрой.
Например,
При переводе целого десятичного числа в систему с основанием q его необходимо последовательно делить на q до тех пор, пока не останется остаток, меньший или равный q–1 . Число в системе с основанием q записывается как последовательность остатков от деления, записанных в обратном порядке, начиная с последнего.
Пример: Перевести число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 75 10 = 1 001 011 2 = 113 8 = 4B 16 .
При переводе числа из двоичной (восьмеричной, шестнадцатеричной) системы в десятичную надо это число представить в виде суммы степеней основания его системы счисления.
примеры:
УРОК №19-20.
Тема
Арифметические операции в позиционных системах счисления. Умножение и деление.
Цель урока: показать способы арифметических операций (умножения и деления) чисел в разных системах счисления, проверить усвоение темы «Сложение и вычитание чисел в различных системах счисления».
Задачи урока:
- образовательные
: практическое применение изученного материала по теме «Умножение и деление в различных системах счисления», закрепление и проверка знаний по теме «Сложение и вычитание чисел в различных системах счисления». развивающие:
развитие навыков индивидуальной практической работы , умения применять знания для решения задач. воспитательные:
достижение сознательного усвоения материала учащимися.
Материалы и оборудование к уроку: карточки для самостоятельной работы, таблицы умножения.
Тип урока: комбинированный урок
Форма проведения урока : индивидуальная, фронтальная.
Ход урока:
1. Проверка домашнего задания.
Домашнее задание:
1. № 2.41 (1 и 2 столбик), практикум, стр. 55
Решение:
А) 11102+10012 =101112
Б) 678+238=1128
В)AF16+9716 = 14616
Г)11102-10012 =1012
Д) 678-238 =448
Е) АF16-9716 =1816
2. №2.48 (стр. 56)
2. Самостоятельная работа «Сложение и вычитание чисел в различных системах счисления». (20 минут)
Самостоятельная работа. 10 класс . | ||
11 + 1110 ; 10111+111 ; 110111+101110 3. Вычесть: 10111-111; 11 - 1110 4. Сложить и вычесть в 8-ричной системе: 738 и 258 | Вариант 1 |
|
Самостоятельная работа. 10 класс. Двоичная система счисления: перевод 2® 10; сложение. | ||
1. Выполнить перевод из двоичной системы счисления в десятичную. 2. Сложить два двоичных числа. 1110+111 ; 111+1001 ; 1101+110001 3. Вычесть: 111-1001; 1110+111 4. Сложить и вычесть в 16-ричной системе: 7316 и 2916 | Вариант 2 | |
3. Новый материал.
1. У м н о ж е н и е
Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты перемножения и сложения однозначных чисел необходимо заимствовать из соответствующих рассматриваемой системе таблиц умножения и сложения.
Умножение в двоичной системе | Умножение в восьмеричной системе |
Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям.
Пример 1. Перемножим числа 5 и 6 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.
https://pandia.ru/text/80/244/images/image004_82.gif" width="419" height="86 src=">
Ответ:
5 .
6 = 3010 = 111102 = 368.
Проверка.
111102 = 24 + 23 + 22 + 21 = 30;
368 = 381 + 680 = 30.
Пример 2. Перемножим числа 115 и 51 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.
https://pandia.ru/text/80/244/images/image006_67.gif" width="446" height="103 src=">
Ответ:
115 .
51 = 586510 = 10110111010012 = 133518.
Проверка.
Преобразуем полученные произведения к десятичному виду:
10110111010012 = 212 + 210 + 29 + 27 + 26 + 25 + 23 + 20 = 5865;
133518 = 1 .
84 + 3 .
83 + 3 .
82 + 5 .
81 + 1 .
80 = 5865.
2. Д е л е н и е
Деление в любой позиционной системе счисления производится по тем же правилам, как и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто
, ведь очередная цифра частного может быть только нулем или единицей.
Пример 3.
Разделим число 30 на число 6.
https://pandia.ru/text/80/244/images/image008_48.gif" width="478" height="87 src=">
Ответ:
30: 6 = 510 = 1012 = 58.
Пример 4. Разделим число 5865 на число 115.
https://pandia.ru/text/80/244/images/image010_50.gif" width="400" height="159 src=">
Восьмеричная: 133518:1638
https://pandia.ru/text/80/244/images/image012_40.gif" width="416" height="18 src=">
https://pandia.ru/text/80/244/images/image014_36.gif" width="72" height="89 src=">
Ответ:
35: 14 = 2,510 = 10,12 = 2,48.
Проверка.
Преобразуем полученные частные к десятичному виду:
10,12 = 21 + 2 -1 = 2,5;
2,48 = 2 .
80 + 4 .
8-1 = 2,5.
4. Домашнее задание:
1. Приготовиться к контрольной работе № 2 «По теме Системы счисления. Перевод чисел. Арифметические операции в системах счисления»
2. Практикум Угринович, №2.46, 2.47, стр. 56.
Литература:
1. Практикум по информатике и информационным технологиям . Учебное пособие для общеобразовательных учреждений / , . – М.: Бином. Лаборатория Знаний, 2002. 400 с.: ил.
2. Угринович и информационные технологии. Учебник для 10-11 классов. – М.:БИНОМ. Лаборатория знаний, 2003.
3. Шауцукова: Учебн. пособие для 10-11 кл. общеобразоват. учреждений. – М.: Просвещение, 2003.9 - с. 97-101, 104-107.
Арифметические операции в позиционных системах счисления
Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же хорошо известным вам правилам.
Сложение. Рассмотрим сложение чисел в двоичной системе счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Важно обратить внимание на то, что при сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд. Переполнение разряда наступает тогда, когда величина числа в нем становится равной или большей основания.
Сложение многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей сложения с учетом возможных переносов из младших разрядов в старшие. В качестве примера сложим в столбик двоичные числа 110 2 и 11 2:
Проверим правильность вычислений сложением в десятичной системе счисления. Переведем двоичные числа в десятичную систему счисления и затем их сложим:
110 2 = 1 × 2 2 + 1 × 2 1 + 0 × 2 0 = 6 10 ;
11 2 = 1 × 2 1 + 1 × 2 0 = 3 10 ;
6 10 + 3 10 = 9 10 .
Теперь переведем результат двоичного сложения в десятичное число:
1001 2 = 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 9 10 .
Сравним результаты - сложение выполнено правильно.
Вычитание. Рассмотрим вычитание двоичных чисел. В его основе лежит таблица вычитания одноразрядных двоичных чисел. При вычитании из меньшего числа (0) большего (1) производится заем из старшего разряда. В таблице заем обозначен 1 с чертой:
Умножение. В основе умножения лежит таблица умножения одноразрядных двоичных чисел:
Деление. Операция деления выполняется по алгоритму, подобному алгоритму выполнения операции деления в десятичной системе счисления. В качестве примера произведем деление двоичного числа 110 2 на 11 2:
Для проведения арифметических операций над числами, выраженными в различных системах счисления, необходимо предварительно перевести их в одну и ту же систему.
Задания
1.22. Провести сложение, вычитание, умножение и деление двоичных чисел 1010 2 и 10 2 и проверить правильность выполнения арифметических действий с помощью электронного калькулятора.
1.23. Сложить восьмеричные числа: 5 8 и 4 8 , 17 8 и 41 8 .
1.24. Провести вычитание шестнадцатеричных чисел: F 16 и А 16 , 41 16 и 17 16 .
1.25. Сложить числа: 17 8 и 17 16 , 41 8 и 41 16
Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же правилам. Для проведения арифметических операций над числами, представленными в различных системах счисления, необходимо предварительно преобразовать их в одну систему счисления и учесть то, что перенос в следующий разряд при операции сложения и заем из старшего разряда при операции вычитания определяется величиной основания системы счисления.
Арифметические операции в двоичной системе счисления основаны на таблицах сложения, вычитания и умножения одноразрядных двоичных чисел.
При сложении двух единиц происходит переполнение разряда и производится перенос единицы в старший разряд, при вычитании 0–1 производится заем из старшего разряда, в таблице «Вычитание» этот заем обозначен 1 с чертой над цифрой (Таблица 3).
Таблица 3
Ниже приведены примеры выполнения арифметических операций над числами, представленными в различных системах счисления:
Арифметические операции над целыми числами, представленными в различных системах счисления, достаточно просто реализуются с помощью программ Калькулятор и MS Excel.
1.3. Представление чисел в компьютере
Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в памяти компьютера в двоичном коде, т. е. в виде последовательности нулей и единиц, и могут быть представлены в формате с фиксированной или плавающей запятой.
Целые числа хранятся в памяти в формате с фиксированной запятой. При таком формате представления чисел для хранения целых неотрицательных чисел отводится регистр памяти, состоящий из восьми ячеек памяти (8 бит). Каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда и вне разрядной сетки. Например, число 110011012 будет храниться в регистре памяти следующим образом:
Таблица 4
Максимальное значение целого неотрицательного числа, которое может храниться в регистре в формате с фиксированной запятой, можно определить из формулы: 2n – 1, где n – число разрядов числа. Максимальное число при этом будет равно 28 – 1 = 25510 = 111111112и минимальное 010 = 000000002. Таким образом, диапазон изменения целых неотрицательных чисел будет находиться в пределах от 0 до 25510.
В отличие от десятичной системы в двоичной системе счисления при компьютерном представлении двоичного числа отсутствуют символы, обозначающие знак числа: положительный (+) или отрицательный (-), поэтому для представления целых чисел со знаком в двоичной системе используются два формата представления числа: формат значения числа со знаком и формат дополнительного кода. В первом случае для хранения целых чисел со знаком отводится два регистра памяти (16 бит), причем старший разряд (крайний слева) используется под знак числа: если число положительное, то в знаковый разряд записывается 0, если число отрицательное, то – 1. Например, число 53610 = 00000010000110002 будет представлено в регистрах памяти в следующем виде:
Таблица 5
а отрицательное число -53610 = 10000010000110002 в виде:
Таблица 6
Максимальное положительное число или минимальное отрицательное в формате значения числа со знаком (с учетом представления одного разряда под знак) равно 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 1111111111111112 и диапазон чисел будет находиться в пределах от -3276710 до 32767.
Наиболее часто для представления целых чисел со знаком в двоичной системе применяется формат дополнительного кода, который позволяет заменить арифметическую операцию вычитания в компьютере операцией сложения, что существенно упрощает структуру микропроцессора и увеличивает его быстродействие.
Для представления целых отрицательных чисел в таком формате используется дополнительный код, который представляет собой дополнение модуля отрицательного числа до нуля. Перевод целого отрицательного числа в дополнительный код осуществляется с помощью следующих операций:
1) модуль числа записать прямым кодом в n (n = 16) двоичных разрядах;
2) получить обратный код числа (инвертировать все разряды числа, т. е. все единицы заменить на нули, а нули – на единицы);
3) к полученному обратному коду прибавить единицу к младшему разряду.
Например, для числа -53610 в таком формате модуль будет равен 00000010000110002, обратный код – 1111110111100111, а дополнительный код – 1111110111101000.
Необходимо помнить, что дополнительный код положительного числа – само число.
Для хранения целых чисел со знаком помимо 16-разрядного компьютерного представления, когда используются два регистра памяти (такой формат числа называется также форматом коротких целых чисел со знаком), применяются форматы средних и длинных целых чисел со знаком. Для представления чисел в формате средних чисел используется четыре регистра (4 х 8 = 32 бит), а для представления чисел в формате длинных чисел – восемь регистров (8 х 8 = 64 бита). Диапазоны значений для формата средних и длинных чисел будут соответственно равны: -(231 – 1) … + 231 – 1 и -(263-1) … + 263 – 1.
Компьютерное представление чисел в формате с фиксированной запятой имеет свои преимущества и недостатки. К преимуществам относятся простота представления чисел и алгоритмов реализации арифметических операций, к недостаткам – конечный диапазон представления чисел, который может быть недостаточным для решения многих задач практического характера (математических, экономических, физических и т. д.).
Вещественные числа (конечные и бесконечные десятичные дроби) обрабатываются и хранятся в компьютере в формате с плавающей запятой. При таком формате представления числа положение запятой в записи может изменяться. Любое вещественное число К в формате с плавающей запятой может быть представлено в виде:
где А – мантисса числа; h – основание системы счисления; p – порядок числа.
Выражение (2.7) для десятичной системы счисления примет вид:
для двоичной -
для восьмеричной -
для шестнадцатеричной -
Такая форма представления числа также называется нормальной . С изменением порядка запятая в числе смещается, т. е. как бы плавает влево или вправо. Поэтому нормальную форму представления чисел называют формой с плавающей запятой . Десятичное число 15,5, например, в формате с плавающей запятой может быть представлено в виде: 0,155 · 102; 1,55 · 101; 15,5 · 100; 155,0 · 10-1; 1550,0 · 10-2 и т. д. Эта форма записи десятичного числа 15,5 с плавающей запятой не используется при написании компьютерных программ и вводе их в компьютер (устройства ввода компьютеров воспринимают только линейную запись данных). Исходя из этого выражение (2.7) для представления десятичных чисел и ввода их в компьютер преобразовывают к виду
где Р – порядок числа,
т. е. вместо основания системы счисления 10 пишут букву Е, вместо запятой – точку, и знак умножения не ставится. Таким образом, число 15,5 в формате с плавающей запятой и линейной записи (компьютерное представление) будет записано в виде: 0.155Е2; 1.55Е1; 15.5Е0; 155.0Е-1; 1550.0Е-2 и т.д.
Независимо от системы счисления любое число в форме с плавающей запятой может быть представлено бесконечным множеством чисел. Такая форма записи называется ненормализованной . Для однозначного представления чисел с плавающей запятой используют нормализованную форму записи числа, при которой мантисса числа должна отвечать условию
где |А| - абсолютное значение мантиссы числа.
Условие (2.9) означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля, или, другими словами, если после запятой в мантиссе стоит не нуль, то число называется нормализованным. Так, число 15,5 в нормализованном виде (нормализованная мантисса) в форме с плавающей запятой будет выглядеть следующим образом: 0,155 · 102, т. е. нормализованная мантисса будет A = 0,155 и порядок Р = 2, или в компьютерном представлении числа 0.155Е2.
Числа в форме с плавающей запятой имеют фиксированный формат и занимают в памяти компьютера четыре (32 бит) или восемь байт (64 бит). Если число занимает в памяти компьютера 32 разряда, то это число обычной точности, если 64 разряда, то это число двойной точности. При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, мантиссы и порядка. Количество разрядов, которое отводится под порядок числа, определяет диапазон изменения чисел, а количество разрядов, отведенных для хранения мантиссы, – точность, с которой задается число.
При выполнении арифметических операций (сложение и вычитание) над числами, представленными в формате с плавающей запятой, реализуется следующий порядок действий (алгоритм) :
1) производится выравнивание порядков чисел, над которыми совершаются арифметические операции (порядок меньшего по модулю числа увеличивается до величины порядка большего по модулю числа, мантисса при этом уменьшается в такое же количество раз);
2) выполняются арифметические операции над мантиссами чисел;
3) производится нормализация полученного результата.