Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБО№5.doc
Скачиваний:
9
Добавлен:
20.02.2016
Размер:
296.96 Кб
Скачать

Шестнадцатиричная система счисления. Таблица для сложения и вычитания чисел в шестнадцатиричной системе счисления используется также, как и таблицы для двоичной и восьмиричной систем счисления.

Таблица 4

0 1 2 3 4 5 6 7 8 9 A B C D E F

00 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 1E

Пример:

9 + В = 14 1A – F = B

Алгоритм операции деление: С=А:В.

Операция деления выполняется с использованием правил десятичного деления с помощью методов умножения и вычитания.

Сначала делаем сдвиг делителя к старшему разряду делимого на n разрядов. Потом от делимого отнимаем сдвигаемый делитель до тех пор, пока остаток будет меньше, чем сдвигаемый делитель. Цифра частного определяется количеством вычитаний сдвигаемого делителя.

Остаток сдвигается на один разряд влево и определяется следующая цифра частного. Количество разрядов целой части частного на 1 больше количества сдвигов разрядов делимого, то есть n+1.

Пример:

256 (10)| 2 Делитель = 002; n = 2;

- 200 1 2 8 Сдвигаемый делитель = 200;

56 Количество разрядов целой части частного = 3.

560

-400

160

1600

-1600

0000

2.4. Представление чисел в эвм

В зависимости от способа представления в них чисел машины делятся на машины с фиксированной запятой и машины с плавающей запятой.

В машинах с фиксированной запятой применяется естественная форма записи чисел: число представляется в виде последовательности цифр, разделенной на целую и дробную часть.

Ячейка памяти такой машины состоит из знакового разряда и цифровых разрядов. Постоянное количество числовых разрядов отведено для хранения целой части числа, остальные цифровые разряды предназначены для изображения ее целой части.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

знак

Целая часть

Дробная часть

Название "машина с плавающей запятой (точкой)" происходит от того, что при записи чисел в ячейках запятая помещается (с помощью записи в указателе положения запятой) после любого цифрового разряда ячейки.

При этом используются числа в так называемой нормализованной форме.Числа с плавающей запятой представляются в ЭВМ по формуле:

А = М*q p,

где М ‑ мантисса;

q ‑ основание системы счисление;

р ‑ порядок числа.

Мантисса числа ограничена диапазоном

q –1 < |M| < 1.

Мантисса нормализуется таким образом, чтобы первой цифрой после запятой была значащая цифра, а не нуль. Если после вычисления мантисса имеет в старших разрядах нули, то она при нормализации сдвигается влево на количество нулевых разрядов и при этом порядок уменьшается на столько же единиц, сколько сдвигов влево было в мантиссе. Например, отобразим число А = -13,75 (10) в форме с плавающей запятой.

-13,75 (10) = -1101,11 (2) = -D,C (16) = -DC*16 1

При этом: М = -0,DC00 (16) = -0,1101 1100 0000 0000 (2)

В современных ЭВМ используется не порядок, а характеристика (Х), которая более порядка на 64 единицы. Таким образом, характеристика числа будет:

Х = р+64 (10) =р+40 (16) = р+01000001 (2)

[A] п.к. = 1.11011100*101000001

знак мантиссы

31 0

Х = р+40 (16) Мантисса от 3 до 7 байт

Характеристика

Рис.1. Формат чисел с плавающей запятой

Диапазон порядка находится от –64 к +63: -64 (10) < p < 63 (10), а диапазон характеристики — 0 < X < 127 (10)

Рассмотрим пример записи числа [A] п.к. = 1.11011100*101000001 в регистр ЭВМ с плавающей запятой (рис.2.).

1

1

0

0

0

0

0

1

1

1

0

1

1

1

0

0

0

0

0

0

...

0

0

0

0

Х М

Рис. 2. Пример записи числа с плавающей запятой

где 0,1 m <1,

m - мантисса,

p - показатель степени.

знак

Цифровые разряды

мантиссы

Знак

порядка

Порядок

КОДИРОВАНИЕ ЧИСЕЛ. Для записи и хранения числовой информации в памяти ЭВМ используются не сами числа, а их коды.

Кодом числа называется условное изображение числа в машине для выполнения арифметических операций. Двоичные числа могут быть представлены в прямом, обратном и дополнительных кодах.

Для кодирования знака числа используется один двоичный разряд, в котором знак "+" изображается цифрой 0; знак "-" изображается цифрой 1. Поскольку положительные числа в различных кодах одинаковы, то специальное кодирование относится только к отрицательным числам.

Отрицательные числа в прямом, обратном и дополнительном кодах имеют различное изображение, но знак числа "-" кодируется как "1" для всех видов кодов.

Отрицательное число в прямом коде сохраняет свое изображение, в обратном коде разряды нулей заменяются единицами, а единицы - нулями. Дополнительный код отрицательного числа соответствует обратному коду числа с прибавлением единицы к младшему разряду.

Прямой код используется при вводе и выводе чисел, а также при сохранении чисел в памяти ЭВМ.

В прямом коде все разряды числа остаются неизменными. Например,

А (2) =1101 [A]п.к. = 0.1101; А (2) = - 0,1101 [A]п.к.= 1.1101

Прямой код используется при умножении чисел. Например,

С=А*В; А (2) =1011; B (2) = -1010;

Сначала вычисляем знаковые разряды путем сложения по модулю 2:

0

1

0

0

1

1

1

0

 ‑ обозначение операции «сложение по модулю 2».

Получаем 0+1=1. Таким образом, результат будет иметь знак в прямом коде 1, что отображает знак минус.

1011

х1010

10110

+ 10110

1101110

Результат: [C] пк. = 1.1101110 (2).

С (2) = - 1101110 = - (1*26+1*25+1*23+1*22+0*20) = - (64+32+8+4+2) = - 110(10)..

Вычитание в ЭВМ выполняется как операция сложения в обратном или дополнительном коде.

Если число А>0, то обратный код пишется как прямой: [A] обр.к. = [A] пк.

Если число А<0, то все разряды числа, кроме знакового, инвертируются. Операция инверсии выполняется по формуле:

b и= (q - 1) – b и.

Нуль в обратном коде в двоичной системе счисления имеет два изображения: “+0” = 0.00...0; “-0” = 1.11...1. В десятичной системе счисления нуль имеет такие изображения: “+0” = 0.00...0; “-0” = 9.99...9.

Переход от обратного кода к прямому осуществляется как и при переходе от прямого к обратному с помощью операции инверсии.

Рассмотрим пример сложения чисел с разными знаками в обратном коде в двоичной и десятичной системах счисления. С = А+(-В):

В двоичной системе счисления: В десятичной системе счисления:

А (2) = 1011; [A]обр.к.= 0.1011; 0.1011 А (10) = 11; [A]обр.к.= 0.11; 0.11

В (2)= - 101; [A] обр.к. = 1.1010; +1.1010 А (10) = -5; [A]обр.к. = 9.94; +9.94

(1)0.0101 (1)0.05

+ 1 + 1

0.0110 0.06

При сложении в обратном коде перенос из старшего (знакового) разряда прибавляется к младшему разряду суммы для получения верного результата.

Если число А>0, то дополнительный код пишется как прямой:

[A] д.к. = =[A]п.к.

Если число А<0, то все разряды числа, кроме знакового, инвертируются и к младшему разряду прибавляется 1.

Пример:

А (2) = - 1010; [A]д.к.= [A]обр.к. + 0.0001 = 1.0101+0.0001 = 1.0110.

Переход от дополнительного кода к прямому осуществляется как и при переходе от прямого к дополнительному (сначала преобразуется в обратный код, а потом к этому числу добавляется 1 младшего разряда).

Рассмотрим примеры сложения чисел с разными знаками в дополнительном коде:

В двоичной системе счисления: В десятичной системе счисления:

А (2) = 1011; [A]д.к.= 0.1011; 0.1011 А (10) = 11; [A]о.к.= 0.11; 0.11

В (2)= - 101; [A] д.к. = 1.1011; +1.1011 А (10) = -5; [A]о.к. = 9.95; +9.95

(1)0.0110 (1)0.06

Результаты: А (2) = 110; А (10) = 6.

При сложении в дополнительном коде перенос из старшего (знакового) разряда отбрасывается для получения верного результата.

Переполнение разрядной сетки ведет к ошибке вычисления. Рассмотрим переполнения разрядной сетки на примерах:

1) А (2) = 1011,0111; [A]м.п.к. = 00.1011,0111

В (2) = 1101,1011; [B]м.п.к. = 00.1101,1011

01.1001,0010

2) А (2) = - 1011,0111; [A]м. д.к. = 11.0100,1001

В (2) = - 1101,1011 [B] м.д.к. = 11.0010,0101

10.0110,1110

При сложении чисел с одинаковыми знаками при переполнении разрядной сетки знак результата становится другим, что является признаком переполнения. Для выявления в ЭВМ признака переполнения применяется модифицированный дополнительный код, в котором под знак числа отводятся два двоичных разряда. При этом знак “+” отображается как 00, а знак “-” ‑ 11. При переполнении знаки результата приобретают вид 01 (при сложении положительных чисел ‑ А>0) и 10 (при сложении отрицательных чисел ‑ А<0)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]