Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2.doc
Скачиваний:
40
Добавлен:
11.02.2015
Размер:
155.65 Кб
Скачать

Представление чисел с фиксированной и плавающей запятой

При представлении числа в двоичном коде с цифрами 0,1 в каждом разряде записываются цифры 0 или 1. Так как в ЭВМ «запись» числа осуществляется с помощью технических устройств, то для представления его в такой форме необходимо располагать устройствами с двумя надежно различными состояниями, которым могут быть сопоставлены значения 0 или 1. Комбинация таких устройств, число которых соответствует количеству разрядов записываемого числа, может быть использована для представления чисел в ЭВМ.

В качестве таких устройств, могут быть использованы триггеры. Набор триггеров, предназначенных для представления чисел в ЭВМ, а также для выполнения над ними некоторых логических преобразований, называется регистром. Разумеется, число разрядов, отведенное для записи числа, соответствующее числу триггеров, в ЭВМ всегда конечно. Выбор количества разрядов для представления чисел в ЭВМ является одним из самых ответственных этапов конструирования вычислительной машины и обуславливается целым рядом требований, среди которых одно из важнейших – необходимая точность вычислений.

В ЭВМ применяются две основные формы представления чисел: с плавающей запятойис фиксированным положением запятой. При представлении чисел с фиксированной запятой положение запятой закрепляется в определенном месте относительно разрядов числа и сохраняется неизменным для всех чисел, изображаемых в данной разрядной сетке. Обычно запятая фиксируется перед старшим разрядом или после младшего. В первом случае в разрядной сетке могут быть представлены только числа, которые по модулю меньше 1, во втором – только целые числа.

Использование представления чисел с фиксированной запятой позволяет упростить схемы машины, повысить ее быстродействие, но представляет определенные трудности при программировании. В настоящее время представление чисел с фиксированной запятой используется как основное только в микроконтроллерах. В универсальных ЭВМ основным является представление чисел с плавающей запятой. Широкий диапазон представления чисел с плавающей запятой удобен для научных и инженерных расчетов. Для повышения точности вычислений во многих ЭВМ предусмотрена возможность использования формата двойной длины, однако при этом происходит увеличение затрат памяти на хранение данных и замедляются вычисления.

Перевод целых чисел из одной позиционной системы счисления в другую

Перевод целых чисел из десятичной системы счисления в любую другую

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

Пример.Число А=17210 перевести в двоичную, восьмеричную и шестнадцатеричную системы счисления.

1. А=17210  А2

172 2_

172 86 2_

0 86 43 2_

0 42 21 2_

1 20 10 2_

1 10 5 2_

0 4 2 2_

1 2 1

0

17210 = 101011002.

A10 = 172, A8 =? A10 = 172, A16 =?

172 8_ 172 16_

168 21 8_ 160 10 (=A)

4 16 2 (C=) 12 

 5 

17210 = 2548 17210 = AC16

Перевод чисел из любой позиционной системы счисления в десятичную

Для перевода числа из любой позиционной системы счисления в десятичную достаточно вспомнить формулу записи числа в позиционной системе счисления.

N= a m*q m+a m-1*q m-1+ a m-2*q m-2++ a 1*q 1+ a 0*q 0+ a -1*q -1+ a -2*q -2+…+ a-s*q –s

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

Например, нам нужно перевести число из пятеричной системы счисления в десятичную систему:

4 3 2 1 0 -1 -2

43224,315=4*54+3*53+2*52+2*51+4*50+3*5-+1*52=2500+375+50+10+4+3/5+1/25= 2979,6410

9 8 7 6 5 4 3 2 1 0

10202101213=1*39+0*38+2*37+0*36+2*35+1*34+0*33+1*32+2*31+1*30==19683+4374+486+81+9+6+1=2464010

Примеры:

1001110112=1*28+1*25+1*24+1*23+1*21+1*20

345678=3*84+4*83+5*82+6*81+7*80

52142336 =5*66+2*65+1*64+4*63+3*62+3*61+3*60

98D4A2C316 =9*167+8*166+13*165+4*164+10*163+2*162+12*161+3*160

Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную системы

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

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

Для перевода в восьмеричную систему двоичное число делят на триады и с помощью таблицы (табл.1) ставят в соответствие каждой триаде восьмеричную цифру.

10.001.110.111.0102=216728

2 1 6 7 2

Чтобы перевести в шестнадцатеричную систему двоичное число надо разделить его на тетрады и с помощью таблицы поставить в соответствие каждой тетраде шестнадцатеричную цифру.

1.0101.0101.1011.10102 =155ВА16

1 5 5 В А

Числа в разных системах счисления. Таблица 1

Двоичные

числа

Восьмеричные

числа

Десятеричные

числа

Шестнадцатеричные

числа

0000

0

0

0

0001

1

1

1

0010

2

2

2

0011

3

3

3

0100

4

4

4

0101

5

5

5

0110

6

6

6

0111

7

7

7

1000

10

8

8

1001

11

9

9

1010

12

10

А

1011

13

11

В

1100

14

12

С

1101

15

13

D

1110

16

14

E

1111

17

15

F

Примеры

100.111.011.010.1012=473258

4 7 3 2 5

1001.1101.1100.1010.11112 =9DCAF16

9 DCAF

Перевод дробных чисел из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную системы счисления

Перевод десятичных дробей можно выполнять по следующему правилу:

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

Для удобства вычислений, проводится вертикальная черта, отделяющая дробную часть от целой и действия выполняются столбиком.

Разбор заданий

А10= 0,28125 А2-?, А8-?, А16-?.

0,28125 0,28125 0,28125

2 8 16

056250 25000 45

2 816

11250 200 800

2

0250

2

050

2

10

А2= 0,01001 А8= 0,22 А16= 0,48.

А10= 0,325 А8-?.

0,325

8

2600

8

 48

8

64

8

32

8

16

8

 48

А8= 0,2(4631) - циклическая дробь.

Если дробь содержит целую часть, то дробная и целая части переводятся отдельно по своим правилам.

А10 = 43,125 А2 -?,

Сначала переводим целую Затем переводим дробную часть:

часть дроби:

0,125

2

0250

2

050

2

10

0.12510= 0.0012.

43 2_

42212_

1 20102_

 1 1052_

 0 422_

 1 21

 0 

4310= 1010112.

После нахождения целой и дробной части соединяем их вместе: А2 = 101011.001

Перевод обыкновенных правильных дробей выполняют по следующему правилу:

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

Разбор заданий

Дана правильная дробь 29/32. Представьте ее в двоичной системе счисления.

Дана дробь 60/64. Перевести ее в восьмеричную и шестнадцатеричную системы счисления:

а) Переведем дробь в двоичную систему счисления

б) Переведем дробь в восьмеричную систему счисления путем разбиения двоичного числа на триады:

0,111 1002=0,748

в) Переведем дробь в шестнадцатеричную систему счисления путем разбиения двоичного числа на тетрады: 0,1111 2=0,F16