Позиционные системы счисления
Системы счисления, используемые для общения с компьютером. Арифметические операции в позиционных концепциях вычисления. Представление целых чисел в компьютере. Логические основы построения цифровых автоматов. Анализ представления вещественных цифр.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 17.05.2016 |
Размер файла | 290,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственное общеобразовательное учреждение высшего профессионального образования
Кубанский государственный технологический университет
Методические указания по выполнению лабораторных работ по дисциплине
Составители:
Атрощенко В.А.,
Краснодар 2011
Содержание
Введение
1. «Позиционные системы счисления»
2. «Арифметические операции в позиционных системах счисления»
3. «Представление целых чисел в компьютере»
4. «Логические основы построения цифровых автоматов»
5. «Решение задач алгебры логики»
Список литературы
Введение
Цель настоящего практикума - ознакомить студентов с арифметическими основами информатики и двоичной логикой. Практикум включает: изучение основных законов и постулатов алгебры логики, для рассмотрения задач синтеза и анализа переключательных схем.
Также в практикум входят изучение различных систем счисления, применяемых в компьютерах; изучение перевода чисел из одной системы счисления в другую; овладение приёмами образования различных кодов; выполнение арифметических операций над числами с фиксированной и плавающей точкой; выполнение логических операций над двоичными числами.
Его содержание соответствует рабочей программе по дисциплине «Информатика». Он состоит из теоретической части и контрольных заданий, которые выполняют студенты в период теоретических занятий.
Количество решаемых студентами задач определяется преподавателем, ведущим практикум.
1. «Позиционные системы счисления»
Цель работы
«Усвоить основные сведения о системах счисления и научиться переводу чисел из одних систем счисления в другие».
Порядок выполнения работы
Ознакомиться с теоретической частью
Получить задание у преподавателя
Оформить отчет
Теоретическая часть
Системы счисления
Существуют позиционные и непозиционные системы счисления.
В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.
В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая - 7 единиц, а третья - 7 десятых долей единицы.
Сама же запись числа 757,7 означает сокращенную запись выражения
700 + 50 + 7 + 0,7 = 7*102 + 5*101 + 7*100 + 7*10-1 = 757,7.
Любая позиционная система счисления характеризуется своим основанием.
За основание системы можно принять любое натуральное число -- два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения
an-1 qn-1 + an-2 qn-2+ ... + a1 q1 + a0 q0 + a-1 q-1 + ... + a-m q-m ,
где ai - цифры системы счисления;
n и m - число целых и дробных разрядов, соответственно.
Продвижение цифры
В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д.
Продвинуть цифру 1 значит заменить её на 2, продвинуть цифру 2 значит заменить её на 3 и т.д. Продвижение старшей цифры (например, цифры 9 в десятичной системе) означает замену её на 0. В двоичной системе, использующей только две цифры - 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 - замену её на 0.
Целые числа в любой системе счисления рождаются с помощью
Рассмотрим это правило на примерах.
Запишем первые десять целых чисел в различных системах счисления:
Система счисления |
|||||
№ |
Двоичная |
Троичная |
Пятеричная |
Восьмеричная |
|
0 |
0 |
0 |
0 |
0 |
|
1 |
1 |
1 |
1 |
1 |
|
2 |
10 |
2 |
2 |
2 |
|
3 |
11 |
10 |
3 |
3 |
|
4 |
100 |
11 |
4 |
4 |
|
5 |
101 |
12 |
10 |
5 |
|
6 |
110 |
20 |
11 |
6 |
|
7 |
111 |
21 |
12 |
7 |
|
8 |
1000 |
22 |
13 |
10 |
|
9 |
1001 |
100 |
14 |
11 |
Системы счисления, используемые для общения с компьютером.
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:
двоичная (используются цифры 0, 1);
восьмеричная (используются цифры 0, 1, ..., 7);
шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел -- от десяти до пятнадцати - в качестве цифр используются символы A, B, C, D, E, F).
Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел:
Из всех систем счисления особенно проста и поэтому интересна для технической реализации в компьютерах двоичная система счисления.
Люди предпочитают десятичную систему, вероятно, потому, что с древних времен считали по пальцам, а пальцев у людей по десять на руках и ногах. Не всегда и не везде люди пользуются десятичной системой счисления. В Китае, например, долгое время пользовались пятеричной системой счисления. А компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами.
Преимущества:
для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток -- нет тока, намагничен -- не намагничен и т.п.), а не, например, с десятью, -- как в десятичной;
представление информации посредством только двух состояний надежно и помехоустойчиво;
возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;
двоичная арифметика намного проще десятичной.
Недостатки:
быстрый рост числа разрядов, необходимых для записи чисел.
Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи.
Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (ведь числа 8 и 16 - соответственно, третья и четвертая степени числа 2).
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему очень прост:
Рассмотрим перевод на примерах.
Существует также правило перевода из двоичной системы в восьмеричную и шестнадцатеричную.
Перевод целого числа из десятичной системы в другую позиционную систему счисления.
Пример: Перевести число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную.
Ответ: 7510 = 1 001 0112 = 1138 = 4B16.
Перевод правильной десятичной дроби в другую позиционную систему счисления Умножение производится до тех пор, пока дробная часть произведения не станет равной нулю. Это значит, что сделан точный перевод. В противном случае перевод осуществляется до заданной точности. Достаточно того количества цифр в результате, которое поместится в ячейку.
Сводная таблица переводов целых чисел из одной системы счисления в другую
Рассмотрим только те системы счисления, которые применяются в компьютерах -- десятичную, двоичную, восьмеричную и шестнадцатеричную.
Для определенности возьмем произвольное десятичное число, например 46, и для него выполним все возможные последовательные переводы из одной системы счисления в другую.
Порядок переводов определим в соответствии с рисунком:
На этом рисунке использованы следующие обозначения:
стрелки указывают направление перевода;
номер рядом со стрелкой означает порядковый номер соответствующего примера в сводной таблице 4.1.
Сводная таблица переводов целых чисел на примере числа 46
Контрольные вопросы
Что такое система счисления?
Что называют основанием позиционных систем счисления?
Какая разница между непозиционными (аддиктивными) системами счисления и позиционными ?
Почему в вычислительной технике используется двоичная система счисления?
Какие действия необходимо произвести для перевода целого числа десятичной системы в иную систему счисления (двоичную, восьмеричную, шестнадцатеричную)?
До каких пор при переводе правильной дроби в иную позиционную систему, производится умножение?
Задание
Какие целые числа следуют за числами:
а) 12 |
е) 18 |
л) F16 |
|
б) 1012 |
ж) 78 |
м) 1F16 |
|
в) 1112 |
з) 378 |
н) FF16 |
|
г) 11112 |
и) 1778 |
о) 9AF916 |
|
д) 1010112 |
к) 77778 |
п) CDEF16 |
Какие целые числа предшествуют числами:
а) 102 |
е) 108 |
л) 1016 |
|
б) 10102 |
ж) 208 |
м) 2016 |
|
в) 10002 |
з) 1008 |
н) 10016 |
|
г) 100002 |
и) 1108 |
о) А1016 |
|
д) 101002 |
к) 10008 |
п) 100016 |
Переведите числа в десятичную систему, а затем проверьте результаты, сделав обратные переводы:
а) 10110112 |
е) 5178 |
л) 1F16 |
|
б) 101101112 |
ж) 10108 |
м) ABC16 |
|
в) 0111000012 |
з) 12348 |
н) 101016 |
|
г) 0,10001102 |
и) 0,348 |
о) 0,A416 |
|
д) 110100,112 |
к) 123,418 |
п) 1DE,C816 |
Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
12510
22910
8810
37,2510
206,12510
Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
Переведите в двоичную и восьмеричную системы шестнадцатеричные числа:
2CE16;
9F4016;
ABCDE16;
1010,10116
1ABC,9D16.
Расположите следующие числа в порядке возрастания:
748, 1100102, 7010, 3816;
6E16, 1428, 11010012, 10010;
7778,1011111112, 2FF16,50010;
10010, 11000002, 6016, 1418;
Название, цель работы;
Задание;
Письменные ответы на контрольные вопросы;
Краткий вывод по работе.
2. «Арифметические операции в позиционных системах счисления»
Цель работы
«Рассмотреть основные арифметические операции в различных системах счисления и научиться применять их на практике»
Порядок выполнения работы
Ознакомиться с теоретической частью
Получить задание у преподавателя
Оформить отчет
Теоретическая часть
Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны -- это сложение, вычитание, умножение столбиком и деление углом.
Эти правила применимы и ко всем другим позиционным системам счисления. Только таблицами сложения и умножения надо пользоваться особыми для каждой системы.
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
|
2 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
|
3 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
|
4 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
|
5 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
|
6 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
|
7 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Сложение в шестнадцатеричной системе
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
|
2 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
|
3 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
|
4 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
|
5 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
|
6 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
|
7 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
8 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
9 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
|
A |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
|
B |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
|
C |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
|
D |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
|
E |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
|
F |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
1F |
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево.
Десятичная: 1510+610 Двоичная 11112+1102 Восьмеричная: 178+68
Ответ: 15+6=2110=101012=258=1516.
Проверка. Преобразуем полученные суммы к десятичному виду:
101012 = 24+22+20 = 16+4+1 = 21
258 = 2+81+5*80 = 16+5 = 21
1516 = 1*161+5*160 = 16+5 = 21
Проверка: Преобразуем полученные суммы к десятичному виду
110012 = 24+23+20 = 16+8+1 = 25
318 = 3*81+1*80 = 24+1 = 25
1916 = 1*161+9160 = 16+9 = 25
Десятичная: 141,510+59,7510 Двоичная: 100011101,12+111011,112
Восьмеричная: 215,48+73,68Шестнадцатеричная: 8D,816+3B,C16
Ответ: 141,5+59,75=201,2510=11001001,012=311,28=С9,416
Проверка. Преобразуем полученные суммы к десятичному виду:
11001001,012 = 27+26+23+20+2-2 = 201,25
311,28 = 3*82+1*81+1*80+2*8-1 = 201,25
С9,416 = 12*161+9*160+4*16-1 = 201,25
Ответ: 201,2510-59,7510=141,510=10001101,12=215,48=8D,816.
Проверка. Преобразуем полученные равенства к десятичному виду:
10001101,12=27+23+22+20+2-1=141,5;
215,48=2*82+1*81+5*80+4*8-1=141,5;
8D,816=8*161+D*160+8*16-1=141,5.
Умножение
Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты перемножения и сложения однозначных чисел необходимо заимствовать из соответствующих рассматриваемой системе таблиц умножения и сложения.
Умножение в двоичной системе Умножение в восьмеричной системе
* |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
2 |
0 |
2 |
4 |
6 |
10 |
12 |
14 |
16 |
|
3 |
0 |
3 |
6 |
11 |
14 |
17 |
22 |
25 |
|
4 |
0 |
4 |
10 |
14 |
20 |
24 |
30 |
34 |
|
5 |
0 |
5 |
12 |
17 |
24 |
31 |
36 |
43 |
|
6 |
0 |
6 |
14 |
22 |
30 |
36 |
44 |
52 |
|
7 |
0 |
7 |
16 |
25 |
34 |
43 |
52 |
61 |
Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям.
Пример 7. Перемножим числа 5 и 6.
Проверка. Преобразуем полученные произведения к десятичному виду:
111102=24+23+22+21=30;
368=3*81+6*80=30.
Пример 8. Перемножим числа 115 и 51.
Десятичная:11510*5110 Двоичная:11100112*1100112
Ответ: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.
Деление
Деление в любой позиционной системе счисления производится по тем же правилам, как и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулём или единицей.
Ответ: 5865:115=5110=1100112=638
Проверка. Преобразуем полученные частные к десятичному виду:
1100112=25+24+21+20=51;
638=6*81+3*81+3*80=51.
Восьмеричная: 438:168
Ответ: 35:14=2,510=10,12=2,48.
Проверка. Преобразуем полученные частные к десятичному виду:
10,12=21+2-1=2,5;
2,48=2*80+4*8-1=2,5.
Контрольные вопросы
Какое Правило счета присуще сложению в двоичной системе?
Что необходимо сделать, если при сложении получился избыток?
Как осуществляется умножение многозначных чисел в различных позиционных системах счисления?
Что необходимо сделать, если при вычитании разряд уменьшаемого числа равен нулю?
Существует ли какая-нибудь разница между осуществлением деления в десятичной системе счисления и любой другой? Если да, то какая?
Задание
1.Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:
3.Перемножьте числа, а затем проверьте результаты, выполнив соответствующие десятичные умножения:
4.Разделите 10110101002 на 11002 и затем выполните соответствующее десятичное и восьмеричное деление.
5.Вычислите значения выражений:
2568+10110,12*(608+1210)-1F16;
1AD16-1001011002:10102+2178;
101010+(10616-110111012)*128;
10112*11002:148+(1000002-408).
Оформление отчета
Название, цель работы;
Задание;
Письменные ответы на контрольные вопросы;
Краткий вывод по работе.
3. «Представление целых чисел в компьютере»
Цель работы
«Закрепить знание о представлении целых чисел, научиться представлять их в различных формах»
Порядок выполнения работы
Ознакомиться с теоретической частью
Получить задание у преподавателя
Оформить отчет
Теоретическая часть
Представление целых чисел
Целые числа могут представляться в компьютере со знаком или без знака.
Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 000000002 до 111111112, а в двухбайтовом формате - от 00000000 000000002 до 11111111 111111112.
Диапазоны значений целых чисел без знака
Формат числа в байтах |
Диапазон |
||
Запись с порядком |
Обычная запись |
||
1 |
0 … 28-1 |
0 … 255 |
|
2 |
0 … 216-1 |
0 … 65535 |
Примеры:
а) число 7210 = 10010002 в однобайтовом формате:
Номера разрядов |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Биты числа |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
б) это же число в двухбайтовом формате:
Номера разрядов |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Биты числа |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
в) Число 65535 в двухбайтовом формате:
Номера разрядов |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Биты числа |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.
Знак «+» кодируется нулем, а «-» - единицей.
Диапазоны значений целых чисел без знака
Формат числа в байтах |
Диапазон |
||
Запись с порядком |
Обычная запись |
||
1 |
-27 … 27-1 |
-128 … 127 |
|
2 |
-215 … 215-1 |
-32768 … 32767 |
|
4 |
-231 … 231-1 |
-2147483648 … 2147483647 |
Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины - семь разрядов.
Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций операцией сложения.
Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде.
Например,
Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.
Прямой код
Так же: если число отрицательное, то в знаковый разряд помещается цифра 1, если положительное - 0. В разряды цифровой части числа - двоичный код его абсолютной величины.
Например,
Прямой код числа -1 Прямой код числа 17 Прямой код числа -6
Обратный код
Получается инвертированием всех цифр двоичного кода абсолютной величины числа: нули заменяются единицами, а единицы - нулями.
За исключением разряда знака разряда
Например,
-1 |
17 |
-6 |
|
Код модуля 10000001 |
Код модуля 00010001 |
Код модуля 10001100 |
|
Обратный код 11111110 |
Обратный код 00010001 |
Обратный код 11110011 |
Дополнительный код
Получается образованием обратного кода с последующим прибавлением к его младшему разряду единицы.
Например,
При переполнении разрядной сетки, происходит перенос единицы в знаковый разряд. Это приводит к неправильному результату, причём положительное число, получившееся в результате арифметической операции, может восприниматься как отрицательное (так как в знаковом разряде «1») и наоборот.
Например,
X= |
0,1010110 |
|||
Y= |
0,1101000 |
|||
X+Y= |
1,0111110 |
Здесь X и Y - коды положительных чисел, но ЭВМ воспринимает результат их сложения как код отрицательного числа («1» в знаковом разряде). Для обнаружения переполнения разрядной сетки вводятся модифицированные коды.
В модифицированном обратном и модифицированном дополнительном кодах под знак числа отводится не один, а два разряда: «00» соответствует знаку «+», «11» - знаку «-».
Любая другая комбинация («01» или «10»), получившаяся в знаковых разрядах служит признаком переполненной разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.
Рассмотрим предыдущий пример, выполнив сложение в модифицированном обратном коде:
X= |
00,101011 |
|||
Y= |
00,110100 |
|||
X+Y= |
01,111111 |
Комбинация «01» в знаковых разрядах означает, что произошло переполнение и получившийся результат неверный.
Рассмотрим ещё один пример.
Даны два числа: X=101001 и Y=-11010. Сложить их в модифицированном коде.
Переведём X и Y в модифицированный дополнительный код:
Обычная запись |
Модифицированный обратный код |
Модифицированный дополнительный код |
|
X=+101001 |
X=00,101001 |
X=00,101001 |
|
Y=-011010 |
Y=11,100101 |
Y=11,100110 |
Выполним сложение:
X= |
00,101001 |
||||
Y= |
11,100110 |
||||
1) |
00,001111 |
||||
отбрасывается |
|||||
(X+Y) = |
00,001111 |
Переполнения нет (в знаковых разрядах «00»), поэтому полученный результат - верный (X+Y=1111).
Арифметические действия над целыми числами в компьютере.
Сложение и вычитание
При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая:
А и В положительные.
При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.
Например,
Десятичная запись |
Двоичные коды |
|||||||
+ |
3 |
+ |
00000011 |
|||||
7 |
00000111 |
|||||||
10 |
00001010 |
Получен правильный результат.
А положительное, В отрицательное и по абсолютной величине больше, чем А.
Например,
Десятичная запись |
Двоичные коды |
|||||||
+ |
3 |
+ |
00000011 |
|||||
-10 |
11110101 |
|||||||
-7 |
11111000 |
Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются:
1 0000111= -710.
А положительное, В отрицательное и по абсолютной величине меньше, чем А.
Например,
Десятичная запись |
Двоичные коды |
||||||||
+ |
10 |
+ |
00001010 |
||||||
-3 |
11111100 |
обратный код числа -3 |
|||||||
7 |
00000110 |
||||||||
+1 |
|||||||||
00000111 |
Компьютер исправляет полученный первоначальный неправильный результат (6 вместо 7) переносом единицы из знакового разряд в младший разряд суммы.
А и В отрицательные.
Например,
Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы.
При переводе результата в прямой код биты цифровой части инвертируются: 1 0001010= -1010.
При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведённой для него области памяти. Такая ситуация называется переполнением разрядной сетки формата числа.
Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. Ниже приведены два возможных случая переполнения.
А и В положительные, сумма А+В больше, либо равна 2n-1, где n - количество разрядов формата чисел (для однобайтового формата n=8, 2n-1=27=128).
Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210=101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.
А и В отрицательные, сумма абсолютных величин А и В больше либо равна 2n-1.
Например,
Десятичная запись |
Двоичные коды |
||||||||
+ |
-63 |
+ |
11000000 |
обратный код числа -63 |
|||||
-95 |
10100000 |
обратный код числа -95 |
|||||||
-158 |
01100000 |
Переполнение |
|||||||
+1 |
|||||||||
Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.
Все эти случаи имеют место и при сложении дополнительных кодов чисел:
А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.
А положительное, В отрицательное и по абсолютной величине больше, чем А.
Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица:
1 0000110+1=1 0000111=-710.
А положительное, В отрицательное и по абсолютной величине меньше, чем А.
Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает.
А и В отрицательные.
Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает.
Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.
Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:
на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов - образования обратного кода и прибавления единицы к его младшему разряду;
время выполнения сложения для дополнительных кодов чисел меньше, чем для их обратных кодов, потому что в таком сложении нет переноса единицы из знакового разряда в младший разряд результата.
Умножение и деление
Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливаемым сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нём поочерёдно размещаются множимое и результаты промежуточных сложений, а по завершению операции - окончательный результат.
Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нём число уменьшается, пока не достигнут нулевого значения.
Для иллюстрации умножим 1100112 на 1011012.
Деление для компьютера является трудной операцией. Обычно оно реализуется путём многократного прибавления к делимому дополнительного кода делителя.
Представление вещественных чисел
Вещественными числами (в отличие от целых) в компьютерной технике называется числа, имеющие дробную часть.
При их написании вместо запятой принято писать точку. Так, например, число 5 - целое, а числа 5.1 и 5.0 - вещественные.
Для удобства отображения чисел, принимающих значения из достаточно широкого диапазона (то есть, как очень маленьких, так и очень больших), используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 можно в этой форме представить так:
1.25*100=0.125*101=0.0125*102=… ,
12.5*10-1=125.0*10-2=1250.0*10-3=… .
Если «плавающая» точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует:
Такое, наиболее выгодное для компьютера, представление вещественных чисел называется нормализованным.
Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание - в десятичной системе.
Примеры нормализованного представления:
Десятичное представление |
Двоичная система |
||||||
735.15 |
= |
0.75315*103 |
-101.01 |
= |
-0.10101*211 |
(порядок 112=310) |
|
-0.000034 |
= |
-0.34*10-4 |
-0.000011 |
= |
-0.11*2-100 |
(порядок -1002=-410) |
Вещественные числа в компьютерах различных типах записываются по-разному. При этом компьютер обычно предоставляет программисту возможность выбора из нескольких числовых форматов наиболее подходящего для конкретной задачи - с использованием четырёх, шести или десяти байтов.
В качестве примера приведём характеристики форматов вещественных чисел, используемых IBM-совместимыми персональными компьютерами.
Форматы вещественных чисел |
Размер в байтах |
Примерный диапазон абсолютных значений |
Количество значащих десятичных цифр |
|
Одинарный |
4 |
10-45…1038 |
7 или 8 |
|
Вещественный |
6 |
10-39…1038 |
11 или 12 |
|
Двойной |
8 |
10-324…10308 |
15 или 16 |
|
Расширенный |
10 |
10-4932…104932 |
19 или 20 |
Из этой таблицы видно, что форма представления чисел с плавающей точкой позволяет записывать числа с высокой точностью из весьма широкого диапазона.
При хранении числа с плавающей точкой отводятся разряды для мантиссы, порядка, знака числа и знака порядка:
Покажем на примерах, как записываются некоторые числа в нормализованном виде в четырёхбайтовом формате с семью разрядами для записи порядка.
Число -0.12510= -0.0012= -0.1*2-10 (отрицательный порядок записан в дополнительном коде):
Арифметические действия над нормализованными числами
При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков.
При сложении и вычитании чисел с плавающей точкой они предварительно выравниваются таким образом, чтобы порядок большего по величине числа становился порядком результата.
Рассмотрим такой пример.
Необходимо выполнить операцию алгебраического сложения над следующими двоичными числами
X = 0.11000001•211 и Y = -0.10000110•2110.
Допустим, под мантиссу в машине отведено 9 разрядов (8 - цифровые разряды, 1 - под знаковый разряд) и под порядок - 4 разряда (3 разряда - величина порядка, 1 разряд - знак порядка), т.е. заданные числа в прямом коде можно записать так:
Процесс сложения заданных чисел состоит из следующих шагов:
1-й шаг - выравнивание порядков для того, чтобы порядок числа X стал равен большему порядку числа Y:
X > 0 110 0 00011000
2-й шаг - перевод обеих мантисс в обратный код:
мантисса числа X 0 00011000
мантисса числа Y 1 01111001
3-й шаг - сложение мантисс:
0 00011000
+ 1 01111001
1 10010001
4-й шаг - перевод результата операции в прямой код:
1 01101110
5-й шаг - нормализация результата, сдвиг мантиссы влево на один разряд:
1 11011100
порядок уменьшается на единицу, вместо 110 становится равным 101.
6-й шаг - окончательно получаем результат, который расположится в ячейке таким образом:
? > 0 101 1 11011100
Эта запись выражает число следующего вида:
- 0. 11011100•2+101
При умножении порядки двух чисел складываются, а мантиссы перемножаются в соответствии с соотношением
x•y=2Px+Py•(mx•my)
При делении чисел о плавающей запятой порядки вычитаются, а мантиссы делятся, т.е.х/у=2Px-Py•(mx/my).
Если мантисса m результата арифметических операций умножения и деления выходит за пределы, указываемые неравенством (4), то она подвергается нормализации.В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются.
В случае необходимости полученный результат нормализуется путём сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу.
Пример 1. Сложить двоичные нормализованные числа 0.10111*2-1 и 0.11011*210. Разность порядков слагаемых здесь равна трём, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:
0.00010111*210 |
|
0.11011 *210 |
|
0.11101111*210 |
Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшается и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:
0.10101 *210 |
|
0.011101*210 |
|
0.001101*210 |
Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.
Умножение
Пример 3. Выполним умножение двоичных нормализованных чисел:
(0.11101*2101)*(01001*211)=(0.11101*0.1001)*2(101+11)=0.100000101*21000
Деление
Пример 4. Выполнить деление двоичных нормализованных чисел:
0.1111*2100 : 0.101*211=(0.1111 : 0.101)*2(100-11)=0.11*210
Использовать представление чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства.
Контрольные вопросы
Какая разница между целыми числами без знака и со знаком?
Для чего предназначены обратный и дополнительный коды?
Как из прямого кода получить обратный и дополнительный?
В чем особенность получения обратного и дополнительного кодов отрицательных чисел?
Как получить модифицированные обратный и дополнительный коды?
Для чего предназначены вещественные числа и как они записываются?
Что такое нормализованное представление вещественных чисел и для чего оно используется?
Задание
1.Запишите уменьшающийся ряд чисел +3, +2, …, -3 в однобайтовом формате: счисление позиционный компьютер цифровой
а) в прямом коде;
б) в обратном коде;
в) в дополнительном коде;
2.Запишите числа в прямом коде (формат 1 байт):
а) 31;
б) -63;
в) 65.
3.Запишите числа в обратном и дополнительном кодах (формат 1 байт):
а)-9;
б)-15;
в)-127;
4.Найдите десятичные представления чисел, записанных в дополнительном коде:
а)1 1111000;
б)1 0011011;
в)1 1101001;
г)1 0000000.
5.Найдите десятичные представления чисел, записанных в обратном коде:
а)1 1101000;
б)1 0011111;
в)1 0101011;
г)1 0000000.
5.Выполнить операции алгебраического сложения с плавающей точкой над следующими двоичными числами (ответ дать в прямом коде):
а)0.101101•2+101 + 0.110001•2+010
б)0.100101•2+001 + 0.100111•2-110
в)0.111011•2-101 + 0.110101•2-010
г)(-0.101011•2+111) + 0.100010•2+011
д) 0.110001•2-011 + (-0.101110•2-010)
е) (-0.110101•2-111) + (-0.101101•2-100)
6.Выполнить умножения над двоичными числами, записанными в форме с плавающей точкой. Полученное произведение вначале нормализовать, а затем округлить до шестого знака мантиссы:
а)0.110101•2+011 х 0.110111•2+-001
б)0.101011•2+110 х 0.100011•2-110
в)(-0.11011•2+101) x 0.101001•2+110
г)0.101110•2-001 x (-0.100101•2+-110)
д)0.110110•2-011 x (-0.110101•2-010)
е)(-0.101011•2+100) x (-0.100011•2-010)
7.Сложить X и Y в модифицированном обратном и модифицированном дополнительном восьмиразрядных кодах. Отметить случаи переполнения разрядной сетки.
а) X=10110;
Y=110101;
б) X=11110;
Y=-111001;
в) X=-11010;
Y=-100111
г) X=-11001;
Y=-100011;
д) X=-10100;
Y=-111010;
е) X=-1101;
Y=-111011.
Оформление отчета
Название,...
Подобные документы
Роль и практическое значение автоматизации вычислений и обработки данных. Представление информации в компьютере, сущность системы счисления. Перевод числа из одной системы счисления в другую. Арифметические операции в позиционных системах счисления.
контрольная работа [1,2 M], добавлен 23.10.2009История систем счисления, позиционные и непозиционные системы счисления. Двоичное кодирование в компьютере. Перевод чисел из одной системы счисления в другую. Запись цифр в римской нумерации. Славянская нумерация, сохранившаяся в богослужебных книгах.
презентация [516,8 K], добавлен 23.10.2015Определение понятия и видов систем счисления - символического метода записи чисел, представления чисел с помощью письменных знаков. Двоичные, смешанные системы счисления. Перевод из одной системы счисления в другую и простейшие арифметические операции.
курсовая работа [232,6 K], добавлен 16.01.2012Общее представление о системах счисления. Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления. Разбивка чисел на тройки и четверки цифр. Разряды символов числа. Перевод из шестнадцатеричной системы счисления в десятичную.
практическая работа [15,5 K], добавлен 19.04.2011Обработка информации и вычислений в вычислительной машине. Непозиционные и позиционные системы счисления. Примеры перевода десятичного целого и дробного числа в двоичную систему счисления. Десятично-шестнадцатеричное и обратное преобразование чисел.
контрольная работа [41,2 K], добавлен 21.08.2010Понятие и классификация систем счисления. Перевод чисел из одной системы счисления в другую. Перевод правильных и неправильных дробей. Выбор системы счисления для применения в ЭВМ. Навыки обращения с двоичными числами. Точность представления чисел в ЭВМ.
реферат [62,0 K], добавлен 13.01.2011Порождение целых чисел в позиционных системах счисления. Почему мы пользуемся десятичной системой, а компьютеры - двоичной (восьмеричной и шестнадцатеричной)? Перевод чисел из одной системы в другую. Математические действия в различных системах счисления.
конспект произведения [971,1 K], добавлен 31.05.2009Примеры правила перевода чисел с одной системы в другую, правила и особенности выполнения арифметических операций в двоичной системе счисления. Перевод числа с десятичной системы в двоичную систему счисления. Умножение целых чисел в двоичной системе.
контрольная работа [37,3 K], добавлен 13.02.2009Система счисления как способ записи информации с помощью заданного набора цифр. История развития различных систем счисления. Позиционные и непозиционные системы. Вавилонская, иероглифическая, римская система счисления. Система счисления майя и ацтеков.
презентация [3,2 M], добавлен 05.05.2012Предыстория чисел, связь названий чисел с определенной схемой счета. Системы счисления в Древнем Египте, Вавилоне, Греции, Риме, Америке, Китае, Индии, Аравии и Западной Европе. Обозначения чисел у древних евреев. Позиционные системы счисления.
реферат [34,3 K], добавлен 15.03.2013Разновидности систем счисления данных, особенности позиционной системы. Порядок перехода между основными системами счисления и реализации целочисленных операций. Представление отрицательных чисел. Представление отрицательных чисел в двоичном коде.
лабораторная работа [142,3 K], добавлен 06.07.2009Арифметические операции над числами, представленными в позиционных системах счисления. Методы перевода чисел из системы остаточных классов в позиционную систему счисления. Программная реализация и анализ метода Ферма в системе компьютерной алгебры Maple.
дипломная работа [1,7 M], добавлен 05.06.2014Двоичный код, особенности кодирования и декодирования информации. Система счисления как совокупность правил записи чисел с помощью определенного набора символов. Классификация систем счисления, специфика перевода чисел в позиционной системе счисления.
презентация [16,3 K], добавлен 07.06.2011Основные виды программного обеспечения. Характеристика пакетов прикладных программ. Виды и группы систем счисления. Перевод целых и дробных чисел из одной системы счисления в другую. Арифметические операции в двоичной системе. Компьютерные преступления.
шпаргалка [65,2 K], добавлен 19.01.2014Десятичная система счисления, ее происхождение и применение. Арифметические операции: сложение и вычитание, умножение и деление. Перевод чисел из одной системы счисления в другую. Применение систем: азбука Морзе, алфавитное кодирование, штрих-коды.
курсовая работа [2,5 M], добавлен 12.01.2015Система счисления как способ записи (изображения) чисел. История появления и развития различных систем счисления: двоичная, восьмеричная, десятичная и шестнадцатеричная. Основные принципы и правила алгоритма перевода из одной системы счисления в другую.
курсовая работа [343,1 K], добавлен 11.11.2014Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.
презентация [296,3 K], добавлен 05.01.2014Сущность и история возникновения систем счисления: определение, разновидности, свойства. Символы и правила их использования при записи чисел. Вариации и обобщения; запись рациональных чисел. Отрицательные, нецелочисленные и комплексные основания.
реферат [150,2 K], добавлен 16.10.2013Целые числа в позиционных системах счисления. Недостатки двоичной системы. Разработка алгоритмов, структур данных. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С. Тестирование программного обеспечения.
курсовая работа [593,3 K], добавлен 03.01.2015Система счисления как совокупность приемов и правил для обозначения и наименования чисел, ее разновидности и критерии классификации. Свойства позиционных однородных систем с естественным множеством цифр. Преобразование чисел из одной системы в другую.
методичка [1,3 M], добавлен 21.09.2011