
- •Лабораторная работа №2 Системы счисления Зарождение и история развития систем счисления.
- •Позиционные и непозиционные системы счисления
- •Представление чисел с фиксированной и плавающей запятой
- •Перевод целых чисел из одной позиционной системы счисления в другую
- •Выполнение арифметических операций в разных системах счисления
- •Представление целых чисел в эвм
- •Задания для самостоятельного решения
- •32. Найти основание системы счисления, в которой справедливо данное равенство; определить неизвестные цифры, отмеченные звездочками.
Представление чисел с фиксированной и плавающей запятой
При представлении числа в двоичном коде с цифрами 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
056250 25000 45
2 816
11250 200 800
2
0250
2
050
2
10
А2= 0,01001 А8= 0,22 А16= 0,48.
А10= 0,325 А8-?.
0,325
8
2600
8
48
8
64
8
32
8
16
8
48
А8= 0,2(4631) - циклическая дробь.
Если дробь содержит целую часть, то дробная и целая части переводятся отдельно по своим правилам.
А10 = 43,125 А2 -?,
Сначала переводим целую Затем переводим дробную часть:
часть дроби:
0,125
2
0250
2
050
2
10
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