Similar presentations:
Арифметические основы ЭВМ
1. И Н Ф О Р М А Т И К А
ИНФОРМАТИКАЛекция № 2. “Арифметические основы ЭВМ.”
1. Системы счисления (СС).
2. Двоичная система счисления.
2.1. Перевод чисел из десятичной СС в двоичную .
2.2. Перевод чисел из двоичной СС в десятичную.
2.3. Правила выполнения арифметических операций с
двоичными числами.
2.4. Достоинства и недостатки двоичной СС.
3. Восьмеричная и шестнадцатеричная системы СС.
3.1. Правила перевода двоичных кодов в
шестнадцатеричную (или восьмеричную) СС.
3.2. Правила перевода из шестнадцатеричной (или
восьмеричной) СС в двоичную.
Автор к.т.н., доцент Хабаров С.П.
www.habarov.spb.ru
2. 1. Системы счисления.
Системой счисления называется способ представлениячисла посредством определенного набора символов.
Позиционные
Системы
счисления
Значение любой цифры в
числе определяется ее
кодом и местом в числе.
Непозиционные
Значение цифры в числе
не зависит от ее
местоположения в числе.
Пример: арабская форма чисел. Пример: римская форма чисел.
Имеем два числа: 123 и 321.
Цифра 3 определяет
в первом числе - три единицы,
во втором – три сотни.
Имеем два числа: IX и XI .
Знак I в обоих случаях единица.
Если она расположена:
слева от X, то вычитается из 10,
справа от X, то прибавляется к 10.
3. В информатике используется несколько СС, каждая из которых получила свое наименование в зависимости от ее основания.
Основанием СС (q) называется количество символовалфавита, применяемого для записи чисел.
Алфавит СС – это множество символов или цифр,
используемых в конкретной СС для записи чисел
Система
счисления
Десятичная
Двоичная Восьмеричная
Шестнадцатеричная
Основание
10
2
8
16
Алфавит
0,1,2, … , 9
0, 1
0,1,2 , … , 7
0,1,2, … , 9,
A,B,C,D,E,F
Данную СС
используют
Любой конечный
пользователь
Элементы
ВТ
Хорошо подготовленные пользователи,
специалисты в области информатики
Для указания СС, в которой представлено число, обозначение числа дополняют:
Либо нижним индексом в виде основания СС.
Например, (101000)2 , (173)8 , (8AF)16
Либо в двоичном числе используют символы B или b (binary – двоичный).
Например, (101000)2 = 101000b = 101000B;
Либо в шестнадцатеричном числе указывают символы 0х слева от числа
или символы H или h (hexadecimal – шестнадцатеричный) справа от числа
Например, (8АF)16 = 0х8АF = 8AFH = 8AFh.
4. Основное свойство всех позиционных СС
Связь между числом и его кодом устанавливаетсяс помощью кодирующего алгоритма:
( an-1 … a1 a0 , a-1 … a-m )q =
an-1*qn-1 +…+ a1*q1 + a0*q0 + a-1*q-1 …+ a-m*q -m
(1)
где q – основание системы счисления,
a i – цифра в i-м разряде числа,
n – количество разрядов целой части числа,
m - количество разрядов дробной части числа.
Пример1. Для случая N10 = ( 328,16 )10.
Имеем q=10, n=3, m=2,
а2=3, а1=2, а0=8, а-1=1, а-2 =6.
Тогда,
(328,16)10 = 3*102 +2*101+8*100 +2*10-1+6*10-2
5. Правила образования чисел во всех позиционных системах счисления те же, что и в десятичной системе.
Таблица перевода шестнадцати натуральных чисел( )10
( )2
( )8
( )16
( )10
( )2
( )8
( )16
0
000
0
0
8
1000
10
8
1
001
1
1
9
1001
11
9
2
010
2
2
10
1010
12
A
3
011
3
3
11
1011
13
B
4
100
4
4
12
1100
14
C
5
101
5
5
13
1101
15
D
6
110
6
6
14
1110
16
E
7
111
7
7
15
1111
17
F
Из таблицы видно, что любая восьмеричная цифра
может быть записано тремя двоичными разрядами
(триадой), а любой шестнадцатеричный символ –
четырьмя двоичными разрядами (тетрадой).
6. 2. Двоичная система счисления.
2.1. Перевод чисел из десятичной системы в двоичнуюПри переводе вещественных чисел отдельно переводится целая часть
числа и отдельно дробная, а затем полученные результаты
объединяются.
Правила перевода
Целых чисел
Правильных дробей
1. Исходное число делят на
основание СС, в которую
число переводится, получая
частное и остаток.
2. Если частное больше
основания СС, в которую
выполняется перевод, то
повторяется шаг1.
3. Остатки от деления дадут
искомый код числа при
записи их, начиная с
последнего частного.
1. Исходная дробь умножается на
основание СС, в которую она
переводится.
2. Перемножаются только дробные
части, получающихся произведений.
3. Умножения прекращаются, если
дробная часть равна 0 или получено
нужное количество цифр в
результате.
4. Дробь в новой СС записывается
последовательностью цифр, которые
являются целыми частями
полученных произведений.
7. Пример 2. Выполнить перевод числа (19,847)10 в двоичную систему счисления:
Пример 2. Выполнить перевод числа (19,847)10 вдвоичную систему счисления:
(10011)2
(0,1101 …)2
В данном примере процедура перевода прервана на
четвертом шаге, поскольку получено требуемое
число разрядов результата.
Очевидно, это привело к потере ряда цифр.
Таким образом, (19,847)10 ≈ (10011,1101 …)2
8. Пример 3. Выполнить перевод чисел (0,125)10 и (0,3)10 в двоичную систему счисления:
Пример 3. Выполнить перевод чисел (0,125)10 и (0,3)10в двоичную систему счисления:
9. Результат перевода в двоичную систему
Результат перевода вдвоичную систему
Целых чисел
1. Результат перевода
всегда целое число.
2. Целые числа всегда
переводятся точно.
Правильных дробей
1. Результат перевода всегда
правильная дробь.
2. В общем случае точного
перевода не существует.
10. 2.2. Перевод чисел из двоичной системы счисления в десятичную.
Перевод чисел из любой позиционной системысчисления в десятичную наиболее просто
осуществить по формуле кодирующего алгоритма
Пример 4. Двоичное число из примера 2 перевести в
десятичную систему.
(10011, 1101)2 =
=1*24 + 0*23 + 0*22 + 1*21 + 1*20 +1*2-1 +1*2-2 +0*2-3 +1*2-4 =
= 16 + 0 + 0 + 2 + 1 + 0,5 + 0,25 + 0 + 0,0625 = (19,8125)10
В примере 2 при переводе десятичного числа (19,847)10
ограничились только четырьмя двоичными разрядами
после запятой. Поэтому
(19,8125)10 ≈ (19,847)10
Чем больше двоичных разрядов было бы сохранено,
тем более точно двоичный код соответствовал бы
исходному числу.
11. 2.3. Правила выполнения арифметических операций с двоичными числами.
При выполнении арифметических операций с двоичнымичислами следует иметь в виду, что:
Они выполняются по тем же правилам, что и для
десятичных чисел.
Таблицы сложения и умножения имеют вид:
0 + 0=0
0 x 0=0
1 + 0=1
1 x 0=0
0 + 1=1
0 x 1=0
1 + 1 = 10
1 x 1= 1
При вычитании занимаемая единица старшего разряда
превращается в 2 единицы более младшего разряда.
Рассмотрим на примерах выполнение таких операций, как сложение,
вычитание, умножение и деление для целых двоичных чисел.
12. Пример 5. Даны числа (12)10=(1100)2 и (7)10=(111)2. Требуется выполнить арифметические операции с двоичными кодами этих чисел.
Пример 5. Даны числа (12)10=(1100)2 и (7)10=(111)2.Требуется выполнить арифметические операции с
двоичными кодами этих чисел.
a). Сложение
1100
0111
10011
б). Вычитание
1100
0111
101
в). Умножение
1100
0111
1100
1100
1100 .
1010100
г). Деление
1100 |111
0111
1,101…
1010
0111
01100
0111
1010
Результаты в десятичной системе:
а). (10011)2 = 1*24 + 1*21 + 1*20 = 16 + 2 + 1 = (19)10
б). (101)2
= 1*22 + 1*20 = 4 + 1 = (5)10
в). (1010100)2 = 1*26 + 1*24 + 1*22 = 64 + 16 + 4 = (84)10
г). (1,101…)2 = 1*20 + 1*2-1 + 1*2-3 = 1 + 0,5 + 0,125 = (1,625)10
Первые три результата совпадают точно. Результат деления (12)10 на (7)10 с
точностью 3 знака после запятой будет (1,741…)10, т.е. (1,741…)10 ≈ (1,б25)10
13. Рассмотренные правила выполнения арифметических действий с двоичными кодами привычны и удобны для человека. Реализовать их
электронными схемами достаточно затруднительно. Поэтому всредствах ВТ:
Операция умножения сводится к последовательности
поразрядных сложений и сдвигов двоичного кода
первого сомножителя влево
Операция деления – это последовательность
поразрядных вычитаний и сдвигов делителя вправо.
Операция вычитания сводится к операции сложения
с отрицательным числом.
А сама операция поразрядного сложения, как будет
показано в следующих разделах, реализуется
совокупность логических функций.
Первые два тезиса можно иллюстрировать примером 5 и
внимательным анализом последовательности действий с
двоичными кодами, выполняемых при операциях умножения и
деления.
Рассмотрим более подробно третий тезис.
14. Возможность замены вычитания сложением с отрицательным числом, связано с тем, что в средствах ВТ отрицательные числа
представляются спомощью специальных кодов (обратных или дополнительных).
Не вдаваясь в глубину этих понятий, проиллюстрируем их на примерах.
Разряды ЭВМ
Пример 6. Получить дополнительный код числа (-7)10 для 4-х
разрядной ЭВМ.
3
2
1
0
Прямой код
Двоичный код, равного по модулю
положительного числа (7)10=(111)2
0
1
1
1
Обратный код
Получается из прямого кода инверсией
всех двоичных разрядов числа
1
0
0
0
Дополнительный
код
Получается из обратного кода путем
добавления единицы в младший разряд
1
0
0
1
(12)10
1
1
0
0
( M )2доп (-7)10
1
0
0
1
0
1
0
1
Пример 7. Даны числа N=(12)10 и M=(7)10.
Выполнить в 4-х разрядной ЭВМ вычитание этих чисел.
Операцию (12)10 - (7)10 заменяем операцией (12)10 + (-7)10.
( N )2
∑
не помещается в разрядную сетку и отбрасывается ----> 1
15. 2.4. Достоинства и недостатки двоичной системы счисления.
Двоичная система счисленияДостоинства
1. Простота алгоритмов
выполнения
арифметических
операций.
2. Простота реализации в
ЭВМ с помощью
элементов, имеющих
два устойчивых
состояния.
Недостатки
1. Большая длина чисел с
однообразными знаками
0 и 1.
2. Неточность перевода
дробной части
десятичных чисел, что
является источником
ошибок вычислений на
ЭВМ.
16. 3. Восьмеричная и шестнадцатеричная системы счисления
Для этих систем, как и любых других позиционных систем,справедливы рассмотренные ранее правила перевода из
десятичной системы счисления и обратно.
Различие состоит в том, что вместо основания q=2, надо
использовать q=8 или q=16, соответственно.
Пример 8. Выполнить перевод числа (20)10 = ( ? )16 = ( ? )8 и
полученные коды перевести в обратно в десятичную систему
счисления.
20 | 16
16
1
4
(14)16 = 1*161+ 4*160 =
= 16 + 4 = (20)10
20 | 8
16
2
4
(24)8 = 2*81+ 4*80 =
=16 + 4 = (20)10
Особенность этих систем: любая восьмеричная цифра записывается триадой, а
шестнадцатеричная тетрадой двоичных разрядов. Поэтому шестнадцатеричные и
восьмеричные коды используют для стенографических записей двоичных данных,
что особенно важно для обеспечения наглядности данных и компактности печати.
17. 3.1. Правила перевода двоичных кодов в шестнадцатеричную (или восьмеричную) СС.
Исходное число разбивается на тетрады (или триады), начиная смладших разрядов.
Если количество цифр исходного двоичного числа не кратно 4
(или 3), то оно дополняется слева незначащими нулями для
достижения требуемой кратности;
Каждая тетрада (или триада) заменятся соответствующей
шестнадцатеричной (или восьмеричной) цифрой в соответствии
с таблицей соответствия кодов (см. табл.).
Пример 9. Записать 12-разрядное двоичное число (101100001111)2
в шестнадцатеричной и восьмеричной системах счисления.
тетрады
(1011 0000 1111)2
(B 0 F)16
(101 100 001 111)2
(5 4 1 7)8
(101100001111)2
триады
18. 3.2. Правила перевода из шестнадцатеричной (или восьмеричной) СС в двоичную.
Каждая цифра исходного числа заменяется тетрадой(или триадой) двоичных цифр из таблицы соответствия
кодов (см. табл.).
Если в таблице двоичное число имеет менее 4-х цифр
(или 3-х при переводе из восьмеричной) СС, то оно
дополняется слева незначащими нулями до тетрады
(триады).
В результирующем числе нули слева отбрасываются.
Пример 10. Записать числа (13)16 и (13)8 в двоичной СС.
В исходных числах по 2 цифры.
Первые (1)16=(1)8 =(1)2 , а вторые (3)16=(3)8 = (11)2
После дополнения двоичных кодов этих цифр нулями
до тетрад и триад получим:
(13)16 = (0001 0011)2 = (10011)2
(13)8 = (001 011)2
= (1011)2
19. Использование 16-ой системы счисления в качестве промежуточной при переводе из десятичной СС в двоичную больших чисел.
Пример 10. Записать число (2831)10 в двоичной СС.При прямом переводе потребуется слишком долго исходное
число делить на основание СС (q=2).
Проще число перевести сначала в 16-ю СС, а затем записать
его двоичный код, заменив каждый символ тетрадой двоичных
разрядов.
2831 | 16
2816 176 | 16
15 176 11
0
(B 0 F)16
3 тетрады
(1011 0000 1111)2